为什么条件在bash中出错?

时间:2016-11-18 11:29:31

标签: windows bash

我的代码如下:

echo "====================================="
echo "      Test Programme                 "
echo "====================================="
echo 

read -p "Enter Name: " name


if [$name -eq ""]; then
    sleep 1
    echo "Oh Great! You haven't entered name."
    exit
fi

read -p "Enter age:  " age

根据该代码,我预计当用户跳过输入名称为WORKS WELL

时会显示"Oh Great! You haven't entered name."

但是,当您为name输入正确的字符串时,它会显示此消息/错误:

./cool_ham.sh: line 13: [Franco: command not found

我想知道原因。 我甚至在@Jack建议之后尝试了"$name" = "",但仍然没有工作。

1 个答案:

答案 0 :(得分:0)

if条件及其内容的方括号之间加一个空格。

if [ "$name" = "" ]; then

另请注意,我使用=而不是-eq来比较字符串。 -eq用于比较整数值,而=将比较字符串,这些字符串来自其他语言可能不直观。

我还引用了prevent globbing and word splitting的$ name。