将列表中的每一行与数字进行比较

时间:2017-04-26 09:47:42

标签: linux bash unix

我有一个这样的清单:

cat mandi
234
562
3256
77
356

我想将此列表的每一行与数字x进行比较,然后在输出大于数字时打印输出。

我尝试了这个脚本,但它没有我期望的结果。

#!/bin/bash

i=1;

for i in {1..$mandi}
do    
    if [ "$i" -gt 10000 ];
    then
        echo "probleme"
    else
        echo "Not problem"
    fi
done

4 个答案:

答案 0 :(得分:0)

试试这个:

#!/bin/bash     

while read line;
do
    if (( ${line} > 1000 ));
    then
      echo "problem"
    else
      echo "good"
    fi
done < mandi

答案 1 :(得分:0)

您可以使用像awk这样的工具来实现相同目的,例如

awk '$0>350{print $0,"-problem";next}{print $0,"-no problem"}' mandi

234 -no problem
562 -problem
3256 -problem
77 -no problem
356 -problem

用适当的数字替换350

答案 2 :(得分:0)

希望这会有所帮助:)

#!/bin/bash

i=1
mandi=`cat mandi` # loads to file mandi contents to a variable
mandi=($mandi) # converts to list
for i in "${mandi[@]}"
do
    if [ $i -gt 10000 ];
    then
        echo "probleme"
    else
        echo "Not problem"
fi
done

答案 3 :(得分:0)

请使用此:

cat mandi | while read num ;do if [ $num -gt 500 ] ;then echo "problem";else echo "no problem";fi; done;

结果:

no problem
problem
problem
no problem
no problem