変数を設定するために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
がありますが、スクリプトがエコーに失敗するたびに(パスワードを間違えた場合)、必要なディレクトリが削除されません。
誰かが私が使用できる修正可能なスクリプトを持っている場合、または現在のスクリプトの問題を指摘できる場合。
if
を使用してこれら2つの文字列(S1
とS2
)を比較する正しい方法は次のとおりです。
if [ "$S1" = "$S2" ]
この場合、使用スペースにケチをしないでください。
参照: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
Bashスクリプトでは、2つの変数を以下のメソッドと比較する必要があります。
if [ "var1" != "var2" ]; then
Do something
fi;
スペースは重要です
GNU test
を使用することもできます。例:
test s1 = s2 && echo Equal || echo Not equal
あなたの文脈では、次のとおりです。
test "$S1" = "$S2" && rmdir -v /home/william/test