shell脚本基本程序中的错误

时间:2014-07-16 16:39:58

标签: shell sh ubuntu-13.10

以下是我从一本书中复制但其工作不正常的代码

#!/bin/sh

echo "is it morning?reply with yes or no"
read timeof

if [ $timeof="yes" ]
then
echo "Good morning"
else
echo "Good afternoon"
fi

exit 0

当我给出输入是的时,它会将输出提供为早上好,但它也给了早上好。也过了一段时间,对于是和否,它说下午好。这真是令人沮丧,请帮忙。


2 个答案:

答案 0 :(得分:2)

除了在Gary_W中提到的=周围添加空格外,还要在必要时用双引号括起你的参数,以防止分词和意外的路径名扩展。

if [ "$timeof" = yes ]

答案 1 :(得分:1)

等号应该在两边都有空格字符。请注意,它不允许timeof为null。额外的功劳,你可以解决: - )