2013-03-27 46 views
22

我該如何改變它以檢查val是否有偶數或奇數值?如何檢查一個變量是否在bash中有一個偶數(而不是奇數)值?

val=2 
if $((RANDOM % $val)); ... 
+0

你想檢查什麼? – fedorqui 2013-03-27 13:20:56

+0

我需要這是一個正確的條件語句來檢查隨機變量是否是偶數。現在它只是說:「0:command not found」 – lizarisk 2013-03-27 13:22:26

+0

喜歡這個? http://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash – 2013-03-27 13:22:50

回答

40
$ a=4 

$ [ $((a%2)) -eq 0 ] && echo "even" 
even 

$ a=3 

$ [ $((a%2)) -eq 0 ] && echo "even" 
+1

用邏輯AND和echo命令學習了一些新東西。謝謝。 – shparekh 2014-09-16 18:12:10

9

$((...))只是一個表達式。其結果顯示bash需要命令。

一個POSIX兼容的解決方案是:

if [ "$((RANDOM % 2))" -ne 0 ]; 

但由於RANDOM沒有在POSIX定義要麼,你不妨使用權bash命令作業:算術評估複合命令:

if ((RANDOM % 2)); then 
+0

這是奇怪的(即,很難讀),如果((RANDOM%2));那麼當RANDOM不是2的倍數時,將是真的...... – 2013-03-27 13:37:04

+0

這是其他語言中常用的相同習語。 C會有'if(random/2){...}'。 Python會有'if random/2:...'。 – chepner 2013-03-27 13:40:18

24
foo=6 

if [ $((foo%2)) -eq 0 ]; 
then 
    echo "even"; 
else 
    echo "odd"; 
fi 
+0

這解決了我的問題。 – shparekh 2014-09-16 18:13:02

相關問題