为什么如果条件给出相同的结果会导致成功或失败?

为什么如果条件给出相同的结果会导致成功或失败?

我有一个名为 的脚本temp.sh。我正在从另一个脚本运行它,例如......

sh temp.sh | tr '|' '\n' > sel-employee
count=`wc -l sel-employee`

if [ '$count' == 0 ] ; then 
echo "ERROR"
else
echo "SUCCESS"
fi

当我运行此脚本时,如果文件 sel-employee 有零行或多于零行,在两种情况下都会输出成功。我不明白为什么?

答案1

if [ '$count' == 0 ] ; then 

该变量count未展开,因为它位于单身的引号。使用双引号:"$count". string$count与 string 不同0,因此比较始终为 false。运行脚本以sh -x查看 shell 运行的命令。另外,您应该使用=, not ==,后者不是标准的,并且不适用于所有 shell。

相关内容