2013-11-22 23 views

回答

0

喜歡的東西,將工作:

if [[ $(awk 'BEGIN{print 0.4*10}') > 1 ]]; then 
    echo YES 
fi 

但它不是完全清楚你打算做什麼。

2

您的命令有語法錯誤。你可能打算在awk本身進行數學比較,無論如何BASH不能做非整數數學。

可能是你的意思是這樣的:

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

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

0

你做不需要if。這將打印yes如果計算是4或no如果不是。

[[ $(awk 'BEGIN{print (0.4*10) }') -eq 4 ]] && echo "yes" || echo "no" 

[ $(awk 'BEGIN{print (0.4*10) }') -eq 4 ] && echo "yes" || echo "no" 
相關問題