我在bash shell中的“if”语句有什么问题

时间:2015-10-30 01:09:45

标签: linux bash shell terminal

我是bash(ing)的新手,我想了解这个脚本我做错了什么。我能够打开脚本并键入一个数字但它关闭终端而没有任何响应。我还要提前感谢你花时间来看一下。我非常感激。

#!/bin/bash

#options 1-4 have options, option 5-x is else command
echo "Type one of the following:"
echo "1 - whoami"
echo "2 - df"
echo "3 - date"
echo "4 - cal"
echo -n "select option:"

read option

if [ "$option" == "1" ]
    then #use whoami command
        echo "whoami"

elif [ "$option" == "2" ]
    then #use df command
        echo "df"
elif [ "$option" == "3" ]
    then #use date command
        echo "date"
elif [ "$option" == "4" ]
    then #use cal command
        echo "cal"

else #red colored error message
    echo "You make an invalid selection. Exiting."
fi

exit 0

3 个答案:

答案 0 :(得分:0)

问题在于您退出0.因为退出0将执行它将退出程序。如果您输入任何选项,它将打印该选项的输出并退出。如果要继续执行操作,可以使用循环。

答案 1 :(得分:0)

使用" -eq"比较运算符而不是" =="

*if [ "$option" -eq "1" ]*

答案 2 :(得分:0)

在bash中进行比较,您无法使用' =='只需使用' ='代替。

 if [ "$option" = "1" ]