請幫忙。這樣做時出現錯誤。我該如何解決CAif [awk'BEGIN {print 0.4 * 10}'> 1 -eq 0];然後回顯YES; fi
if [ awk 'BEGIN{print 0.4*10}' > 1 -eq 1 ]; then echo YES; fi
請幫忙。這樣做時出現錯誤。我該如何解決CAif [awk'BEGIN {print 0.4 * 10}'> 1 -eq 0];然後回顯YES; fi
if [ awk 'BEGIN{print 0.4*10}' > 1 -eq 1 ]; then echo YES; fi
喜歡的東西,將工作:
if [[ $(awk 'BEGIN{print 0.4*10}') > 1 ]]; then
echo YES
fi
但它不是完全清楚你打算做什麼。
您的命令有語法錯誤。你可能打算在awk本身進行數學比較,無論如何BASH不能做非整數數學。
可能是你的意思是這樣的:
if [ $(awk 'BEGIN{print ((0.4*10) > 1) }') -eq 1 ]; then echo YES; fi
YES
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
你做不需要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"
也許更好告訴我們你想要做什麼。 – pfnuesel