للحلقة في برنامج نصي shell لعدم عرض رقم محدد واحد

-2

باستخدام حلقة FOR في برنامج نصي shell أحاول طباعة أرقام من 1 إلى 15 باستثناء الرقم 10. يعطيني الرمز أدناه خطأ:

#!/bin/bash

for ((i=1;i<16;i++));
do
if [ $i -ne 10 ];
echo $i
else
break
fi
done

test.sh: line 7: syntax error near unexpected token 'else' test.sh:
line 7: 'else'

هل يمكن لاحد مساعدتي هنا

لقد تحققت من سلاسل الرسائل على حلقة ولم أتمكن من العثور على أي أسئلة مماثلة ، لذلك نشرت هذا السؤال.

3 الاجابة

1
افضل جواب
for i in {1..9} {11..15} ; do echo $i ; done
:مؤلف
1
افضل جواب
#!/bin/bash

for (( i=1 ; i<16 ; i++ )); do 
    if [[ $i -ne 10 ]]; then 
        echo $i
    fi 
done

لقد نسيت then بعد الشرط إذا. أيضا ، break في عبارة if ، سيتم الخروج من الحلقة إذا كانت i = 10 ، وبالتالي لن تطبع الأرقام من 11 إلى 15 بمجرد الرمز الذي كتبته. أيضا ، يمكنك تغيير ، في هذه الحالة ، [[ ]] ببساطة [] على بيان إذا. انتبه للمسافات بين الرموز.

:مؤلف
0

تريد طباعة كل شيء غير رقم معين ، صحيح. هل تحاول شيئا على هذا المنوال؟

#!/bin/bash 
for ((i=1;i<16;i++))
do
if [[ $i -ne 10 ]]
then
echo $i
fi
done

هذا يجب أن يطبع كل شيء بخلاف 10. لم أختبره ولكن يجب أن يعمل.

:مؤلف
فوق
قائمة طعام