Я создал скрипт резервного копирования, который загружает файлы на сервер Windows для обмена файлами, используя команду smbclient
. Мой сценарий работает правильно, но если пользователь вводит неправильное имя пользователя или пароль, сценарий останавливается. Я хотел бы, чтобы он снова запрашивал логин и пароль, пока он не будет правильным.
Я пытался сделать это:
#!/bin/bash
unset user
unset pass
testLoginValue=false
while [[ "$testLoginValue" = false ]]; do
while [ -z ${user} ]; do
read -p "Username: " user
done
while [ -z ${pass} ]; do
read -sp "Password: " pass
done
testLogin=$(smbclient '\\my.windows.server.ip\folder\' $pass -U domain\\$user -c 'help') # This connect to the server and get the result of the "help" command
if [[ $testLogin == "session setup failed: NT_STATUS_LOGON_FAILURE" ]]; then
echo "Username or password incorrect."
else
echo "Successful connection."
testLoginValue=true
fi
done
echo "the script will continue..."
Проблема в том, что в этом коде скрипт повторяет "Username or password incorrect."
в цикле без остановки. Я хотел бы, чтобы он повторил "Username or password incorrect."
только один раз, чтобы снова запросить учетные данные. Как я могу это сделать?