linux - 如果 [ awk 'BEGIN{print 0.4*10}' > 1 -eq 0 ];然后回显是;菲

标签 linux bash shell if-statement awk

请帮忙。执行此操作时出现错误。我该如何修复

if [ awk 'BEGIN{print 0.4*10}' > 1 -eq 1 ]; then echo YES; fi

最佳答案

shell 语法一开始很难内化。花点时间了解 if 命令实际上不需要任何特殊语法:它根据命令的退出状态 做出决定。通常你会看到方括号,但它们实际上只是 test 命令的别名(或多或少)。

如果你想处理 awk 的退出状态:

if awk 'BEGIN {n = 0.4 * 10; exit (!(n>1))}'; then echo yes; fi

如果你只是想做一些数学运算:

result=$(bc <<< "(0.4 * 10) > 1")
if [[ $result = "1" ]]; then echo "YES"; fi

# or, in  one step
if [[ $(bc <<< "(0.4 * 10) > 1") = "1" ]]; then echo "YES"; fi

在 bash 提示符下,输入 help if

关于linux - 如果 [ awk 'BEGIN{print 0.4*10}' > 1 -eq 0 ];然后回显是;菲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20148284/

相关文章:

linux - 适用于 Windows 和 Linux 的单个可执行文件?

python - python中格式错误的环境变量检测

linux - ssh 注销后后台 shell 脚本无法访问目录,即使使用 nohup

linux - 为什么使用 rm 从容器中删除文件后虚拟大小仍然相同?

linux - 如何对多个文件进行排序? Unix

bash - 为什么正确的 shell 脚本会给出包装/截断/损坏的错误消息?

c - 使用 fork 两次 - 奇怪的行为

linux - tcpreplay 乱序发送数据包?

linux - bash -- 终止命令脚本

linux - Linux 启动/关闭时的日志脚本