Unix Scripting if语句更正

时间:2015-04-10 19:32:03

标签: unix if-statement scripting

即时尝试检查我的脚本是否正确运行,以回显消息,但是当我使用此if语句时,它会在行上产生错误' 9' (if [ $? -eq 0 ])说一个'不见了。

#!/bin/bash
name=$1
if ["$name" = ""]
then
 echo -n "Enter a name to search for: "
        read name
fi

if [ $? -eq 0 ]
then
 echo "Incorrect Input"
fi

1 个答案:

答案 0 :(得分:1)

if ["$name" = ""]

是错误的,因为您必须在[和表达式之间(以及]之前)之间留有空格。

的语法没有明显的错误
if [ $? -eq 0 ]

但是用算术检查退出代码总是可疑的,因为这是if直接做的事情。如果您的脚本与上面显示的一样,则第二个if语句应始终为true。前一个if语句的表达式为false的事实并不重要,因为if语句yields zero如果没有条件测试为真。例如:

$ if false; then echo hi; fi; echo $?
0