我对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$
提前谢谢!
答案 0 :(得分:1)
elif [[ 'grep -c "100%" $SDSELIGLOG' == "$FILECOUNT" ]]; then
这些应该是反引号,而不是单引号。
elif [[ `grep -c "100%" $SDSELIGLOG` == "$FILECOUNT" ]]; then