2014-03-29 104 views
0

我有數字陣列(1 2 3 4 5)bash腳本端循環,如果真

magicnumber=7 

我想說如果幻數是等於陣列或更大發現比的數數組中最高的數字然後做。

{陣列[@]} - 包含數字

highnum=the highest number from the array 

for f in $dir "#f is file with a number in it" 
do 

    "the number inside file f is pulled out and named filenum" 
    filenum 

    for i in ${array[@]} 
    do 
     if [ $i -eq $filenum ] || [ $filenum -gt $highnum ] 
     then 
      do this and end the "for i loop" 
     else 
      continue with loop 
     fi 
    done 
done 
+0

歡迎來到Stack Overflow。要縮進代碼,請將其寫入文本編輯框(或粘貼它),因爲您希望它顯示 - 沒有選項卡。然後選擇代碼並按編輯框上方的** {} **按鈕以縮進4個空格。 –

+0

'break'語句終止循環。因爲循環將繼續,所以'else'子句是多餘的。但是,您可以在'else'子句中使用'continue'來進入循環的下一個循環。 –

+0

休息是我正在尋找的。謝謝 – user2561395

回答

3

您可以使用「陣列字串」和模式匹配,以確定是否一個神奇的數字是數組中 - 所有的報價和下面的空間都非常故意和必要的。

if [[ " ${array[*]} " == *" $magicnumber "* ]]; then 
    echo "magic number is in array" 
else 
    # Otherwise, find the maximum value in the array 
    max=${array[0]} 
    for ((i=1; i<${#array[@]}; i++)); do 
     ((${array[i]} > max)) && max=${array[i]} 
    done 
    ((magicnumber > max)) && echo "magic number greater than array elements" 
fi