问题在于此代码:
words=`wc -l /home/tmp/logged.log | awk '{print $1}'`;
if [ $words == 26 ]
then
echo $words
echo Good
else
echo Not so good
fi
它总是返回else语句。即使结果是26。 我也试过
words=`wc -l < /home/jonathan/tmp/logged.log`;
答案 0 :(得分:6)
尝试使用[ $words -eq 26 ]
代替[ $words == 26 ]
或[ 26 == 26 ]
检查该声明是否正常
答案 1 :(得分:2)
因为==
无效。使用=
if [ $words = 26 ]
顺便说一句,您可以使用cut
代替awk
。
wc -l /home/tmp/logged.log | cut -f1 -d" "
答案 2 :(得分:1)
试试这个:
words=`wc -l /home/tmp/logged.log | awk '{print $1}'`;
if test $words -eq 26; then
echo $words
echo Good
else
echo Not so good
fi