
shell中比较两个变量之间的值!
catcc.del803000,0.30,0.41801001,0.20,0.12801004,0.20,0.43805012,0.50,0.25我想用if语句。现在写的...
cat cc.del
803000,0.30,0.41
801001,0.20,0.12
801004,0.20,0.43
805012,0.50,0.25
我想用if语句。现在写的是if [$a -gt $b] then echo "go" fi
其中的a,b对应文件的第二列和第三列。
a=`echo $line | awk -F ',' '{print $2}'`
b=`echo $line | sed 's/.*\(....\)$/\1/'`
但是现在压根就什么都没有。这个文件中第二列大于第三列的应该有两个,但是没有显示出来。
请问要如何写。才能让判断语句生效啊。 展开
803000,0.30,0.41
801001,0.20,0.12
801004,0.20,0.43
805012,0.50,0.25
我想用if语句。现在写的是if [$a -gt $b] then echo "go" fi
其中的a,b对应文件的第二列和第三列。
a=`echo $line | awk -F ',' '{print $2}'`
b=`echo $line | sed 's/.*\(....\)$/\1/'`
但是现在压根就什么都没有。这个文件中第二列大于第三列的应该有两个,但是没有显示出来。
请问要如何写。才能让判断语句生效啊。 展开
展开全部
#问题原因:gt只能比较整数,浮点数应该按字符串比较
#正确写法如下:
#!/bin/sh
#输入参数:数据文件
if [ $# -ne 1 ]
then
echo "Usage: $0 filename"
exit
fi
#循环读取行
while read line
do
a=`echo $line | awk -F ',' '{print $2}'`
b=`echo $line | sed 's/.*\(....\)$/\1/'`
#注意:以下>符号前的\不能少
if [ "$a" \> "$b" ]
then
echo "go"
fi
done < $1
希望能够帮助到你,你的好评是我前进的动力,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询