awk 小數比對問題

values=125.2
timeout=124.1
if (echo ${valuse} ${timeout} | awk '!($1 -gt $2)')
then
  echo aa
else
  echo bb
fi

上述script哪裡出了問題呢??

作者: stone886   发布时间: 2011-02-09

if [ ]
不是()

作者: lgxwqq111   发布时间: 2011-02-09

注意[ 字符 ] 之间的空格

作者: lgxwqq111   发布时间: 2011-02-09

直接比较如何?
if [ ${values} -gt ${timeout} ]

作者: justkk   发布时间: 2011-02-09

shell不支持小数
引用 3 楼 justkk 的回复:

直接比较如何?
if [ ${values} -gt ${timeout} ]

作者: daiguoliangfirst   发布时间: 2011-02-09


root@yeah ~
$ values=125.2

root@yeah ~
$ timeout=124.1

root@yeah ~
$ awk 'BEGIN{print('"$values"'<='"$timeout"')?"aa":"bb"}'
bb

root@yeah ~
$

作者: masmaster   发布时间: 2011-02-09

if [ echo ${valuse} ${timeout} | awk '!($1 -gt $2)' ]


./comparenum.sh: line 20: [: missing `]'
awk: cmd. line:1: fatal: cannot open file `]' for reading (沒有此一檔案或目錄)

還是有問題

作者: stone886   发布时间: 2011-02-09

valuse ??
values ??

作者: justkk   发布时间: 2011-02-09

直接看5l的即可。用awk自己就解决了,没必要再那么麻烦的if else

作者: lgxwqq111   发布时间: 2011-02-09

我就是要判斷數值的大小,再做分支處理
所以要用if else

作者: stone886   发布时间: 2011-02-09

awk 'BEGIN{print('"$values"'<='"$timeout"')?"aa":"bb"}'
这比if强多少倍

作者: lgxwqq111   发布时间: 2011-02-09