#!/bin/ksha=1.1echo$a|awk'{printint($a)==$a?$a:int(int($a*10/10+1))}'以上脚本运行后,有一下报错,求高... #!/bin/ksh
a=1.1
echo $a|awk '{print int($a)==$a?$a:int(int($a*10/10+1))}'
以上脚本运行后,有一下报错,求高手指点
awk: syntax error near line 1
awk: illegal statement near line 1
浮点运算是有间接方法的,你这样在awk里运算其实是可以的(awk里是C语言环境,支持浮点数直接运算),或者用 bc 也可以。
只不过这里$a是shell变量,在awk里应该取不到值了吧,因为单引号会屏蔽$的取值功能。
你试试awk里直接print $a 看看。

如果是这个问题,改为这样试试:
echo $a|awk '{print int('$a')=='$a'?'$a':int(int('$a'*10/10+1))}'
还是不行,报语法错误
非常感谢你的回答,我换其他方法吧