在Bash中比较两个字符串

我想创建一个脚本,在使用read设置变量确认密码后,用rmdir删除目录。

到目前为止我有这个:

 #!/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比较这两个字符串( S1S2 )的正确方法是:

 if [ "$S1" = "$S2" ] 

在这种情况下,不要在使用空间中吝啬。

请参阅: http : //tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

在bash脚本中,您需要将两个变量与下面的方法进行比较。

 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