مميزات - نظام تشغيل لينكيس linux تحميل




هل يدعم نظام تشغيل shell shell بنية بيانات القائمة؟ (2)

لإعداد قائمة ، ببساطة القيام بذلك

colors=(red orange white "light gray")

تقنيًا صفيف ، لكن - بالطبع - لديه كل ميزات القائمة.
يتم تنفيذ حتى قائمة الثعبان مع مجموعة

هذا السؤال ليس هو نفسه كما مجموعات الدعم قذيفة؟

أعرف الكثير من بنية قائمة دعم لغة البرنامج النصي ، مثل python و python و ruby ​​و javascript ، فماذا عن linux shell؟

هل تدعم شل مثل بناء الجملة؟

for i in list:
do
     print i
done

أود أولاً تهيئة قائمة ، على سبيل المثال:

ListName = [ item1, item2, ..., itemn ]

ثم التكرار على ذلك

هل هذا ممكن عند برمجة نصوص شل؟


يدعم القوائم ، ولكن ليس كهيكل بيانات منفصل (تجاهل المصفوفات في الوقت الحالي).

تتكرر حلقة for على قائمة (بالمعنى العام) لقيم مفصولة بمسافة بيضاء ، بغض النظر عن كيفية إنشاء هذه القائمة ، سواءً حرفيًا:

for i in 1 2 3; do
    echo "$i"
done

أو عن طريق توسيع المعلمة:

listVar="1 2 3"
for i in $listVar; do
    echo "$i"
done

أو استبدال الأوامر:

for i in $(echo 1; echo 2; echo 3); do
    echo "$i"
done

الصفيف هو مجرد معلمة خاصة يمكن أن تحتوي على قائمة ذات قيمة أكثر تنظيماً ، حيث يمكن أن يحتوي كل عنصر بحد ذاته على مسافة بيضاء. قارن الفرق:

array=("item 1" "item 2" "item 3")
for i in "${array[@]}"; do   # The quotes are necessary here
    echo "$i"
done

list='"item 1" "item 2" "item 3"'
for i in $list; do
    echo $i
done
for i in "$list"; do
    echo $i
done
for i in ${array[@]}; do
    echo $i
done




ash