如果[awk'BEGIN {print 0.4*10}'> 1 -eq 0]; 然后回音是; 科幻

and*_*sg3 1 linux bash shell awk if-statement

请帮忙.这样做我收到错误.我怎么修理

if [ awk 'BEGIN{print 0.4*10}' > 1 -eq 1 ]; then echo YES; fi
Run Code Online (Sandbox Code Playgroud)

gle*_*man 7

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

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

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

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

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
Run Code Online (Sandbox Code Playgroud)

在bash提示符下键入 help if