Bash- if子句无法正常工作

时间:2015-09-29 20:51:04

标签: bash

我想创建一个关闭脚本,但它并没有按预期工作。这就是我写的。

echo "Wanna shutdown (y/n)?"

 read ANSWER

if [ $ANSWER=="y" ]
     then
        sudo shutdown -P now
else 
    printf "Something...."
无论我怎么按它都会关闭。为什么呢?

1 个答案:

答案 0 :(得分:2)

您需要在==运算符周围添加空格。否则,测试表达式是单个单词,并且所有非空单词都会成功测试。

此外,如果您希望便携,则应使用=代替==。而引用变量扩展是明智的,因为[不会为你做这件事。

if [ "$ANSWER" = y ]; then

另一方面,如果您使用的是bash(或ksh或zsh),则可以使用更宽容的[[条件表达式:

if [[ $ANSWER = y ]]; then