为什么这种情况不正确?

时间:2017-11-01 20:00:57

标签: bash shell

我对shell脚本相对较新,这种情况令我感到困惑。我已经插入了shell脚本,以及shell脚本的执行/结果。粗体“if / then / elif / then / else / fi”条件(TEST1.sh的最后8行)是原始脚本中未按预期运行的部分。为了进行调试,我确实使用elif添加了echo语句。在底部,我执行grep命令,它返回1,即期望值,但在将结果与FILECOUNT(设置为1)进行比较时,它们不相等。

TEST1.sh

#!/bin/sh
export TERM="xterm"
SDSELIGLOG=/data3/NEI-SCRIPTS/logs/SDSEligWeekly.log
FILECOUNT="1"
#
echo "grep cmd returns result="
grep -c "100%" $SDSELIGLOG
#
if [[ 'grep -c "100%" $SDSELIGLOG' == $FILECOUNT ]]; then
   echo "TRUE"
else
   echo "FALSE"
fi
#
**if [[ `grep "Incorrect login information" $SDSELIGLOG` ]]; then
      echo "FTP Connection Failed!"
   elif [[ 'grep -c "100%" $SDSELIGLOG' == "$FILECOUNT" ]]; then
      echo "Hits elif section of code"
      #Continue script normally
   else
      echo "File transfer process did not complete fully!"
fi**

执行/结果

sh-4.1$ ./TEST1.sh
grep cmd returns result=
1
FALSE
File transfer process did not complete fully!
sh-4.1$

提前谢谢!

1 个答案:

答案 0 :(得分:1)

elif [[ 'grep -c "100%" $SDSELIGLOG' == "$FILECOUNT" ]]; then

这些应该是反引号,而不是单引号。

elif [[ `grep -c "100%" $SDSELIGLOG` == "$FILECOUNT" ]]; then