我有一个名为 的脚本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。