Имеется файл ./pass-file созданный с помощью htpasswd, в котором записан пароль 123456 для единственного пользователя user.
Содержимое этого файла:
user:0aVDMt3JbwKEkНадо в скрипте проверить этот пароль и результат проверки передать переменной.
Проверяем сначала без передачи в переменную. Файл test.sh:
#!/bin/bash
echo правильный пароль
pass1="123456"
htpasswd -vb pass-file user $pass1
echo неправильный пароль
pass2="1234567"
htpasswd -vb pass-file user $pass2
Проверяем:
[console]$ ./test.sh
правильный пароль
Password for user user correct.
неправильный пароль
password verification failed
[/console]
Вроде все работает. Модернизируем скрипт test1.sh (не заморачиваясь пока излишним выводом на экран):
#!/bin/bash
echo правильный пароль
pass1="123456"
message1=$(htpasswd -vb pass-file user $pass1)
echo неправильный пароль
pass2="1234567"
message2=$(htpasswd -vb pass-file user $pass2)
echo message1=$message1" "message2=$message2
Проверяем:
[console]$ ./test1.sh
правильный пароль
Password for user user correct.
неправильный пароль
password verification failed
message1= message2=
[/console]
И убеждаемся, что в переменную ничего не передается (ни строка ни число).
Голову сломал, пытаясь найти, в чем косяк.