Я хотел бы создать скрипт, который удаляет каталог с помощью rmdir
после подтверждения паролем, используя read
для установки переменной.
Пока у меня есть это:
#!/bin/bash -x
echo "Password:"
read -t 30 S1
S2='55555'
if [ $S1=$S2 ]; then
rmdir /home/william/test
else
echo "fail"
sleep 10
fi
Итак, у меня есть -x
, чтобы попытаться отладить его, но каждый раз, когда сценарий либо выходит из строя (если я неверно ввел пароль) это не удалит необходимый каталог.
Если у кого-то есть изменяемый сценарий, который я мог бы использовать, или если бы вы могли указать на проблемы с текущим сценарием, это было бы замечательно.
Правильный способ сравнения этих двух строк (S1
и S2
) с использованием if
:
if [ "$S1" = "$S2" ]
В этом случае не скупитесь на пробелы.
См .: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
Вы также можете использовать GNU test
, например:
test s1 = s2 && echo Equal || echo Not equal
В вашем контексте это:
test "$S1" = "$S2" && rmdir -v /home/william/test
В скриптах bash вам нужно сравнить две переменные с методом ниже.
if [ "var1" != "var2" ]; then
Do something
fi;
Пробелы важны