带有wc -l的shell脚本,如果语句不起作用

时间:2012-02-24 12:10:52

标签: bash shell

问题在于此代码:

    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`;

3 个答案:

答案 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