首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果[ echo‘`awk 'BEGIN{print 0.001>0.9}'` -eq 0 ];则执行某些操作;fi

如果[ echo‘`awk 'BEGIN{print 0.001>0.9}'` -eq 0 ];则执行某些操作;fi
EN

Stack Overflow用户
提问于 2013-11-23 03:42:31
回答 4查看 260关注 0票数 0

请帮帮忙。如何才能做到这一点

代码语言:javascript
复制
if [ echo `awk 'BEGIN{print 0.001>0.9}'` -eq 0 ]; then DO SOMETHING; fi

但这是错误的。

我想要做的是:如果第一个数字(0.001)大于0.9,那么就做点什么。否则什么也不做

数字将始终是浮点型,如0.001,0.03,0.89...

啊,我不能使用bc命令。

EN

回答 4

Stack Overflow用户

发布于 2013-11-23 03:49:15

概括一下:

代码语言:javascript
复制
function gt {
    awk -v n1=$1 -v n2=$2 'BEGIN {exit !(n1 > n2)}'
}

if gt 0.01 0.9; then
    do_something
fi
票数 5
EN

Stack Overflow用户

发布于 2013-11-23 03:46:16

这应该是可行的:

代码语言:javascript
复制
[[ $(awk 'BEGIN{print (0.001>0.9)}') -eq 0 ]] && DO SOMETHING

或者,如果您想将变量传递给awk:

代码语言:javascript
复制
[[ $(awk -v a='0.001' -v b='0.9' 'BEGIN{print (a>b)}') -eq 0 ]] && echo "a is smaller"
票数 2
EN

Stack Overflow用户

发布于 2013-11-23 03:59:07

拿你现有的代码来说,它缺少变量,从字面上看,这应该足够了:

代码语言:javascript
复制
DO SOMETHING

因为0.001永远不会大于0.9,所以awk应该打印0,这当然等于0,所以如果不使用任何变量,整个测试就有点没有意义……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20153207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档