我的代码如下:
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" = ""
,但仍然没有工作。
答案 0 :(得分:0)
在if
条件及其内容的方括号之间加一个空格。
if [ "$name" = "" ]; then
另请注意,我使用=
而不是-eq
来比较字符串。 -eq
用于比较整数值,而=
将比较字符串,这些字符串来自其他语言可能不直观。
我还引用了prevent globbing and word splitting的$ name。