Подтвердить что ты не робот

Поддерживает ли linux-оболочку структуру списка данных?

Этот вопрос не совпадает с Описывает ли оболочки поддержку?

Я знаю множество script структуры списка поддержки языков, таких как python, python, ruby ​​и javascript, так что же насчет оболочки Linux?

поддерживает ли оболочка такой синтаксис?

for i in list:
do
     print i
done

Сначала я должен был инициализировать список, например:

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

, затем перебираем его

возможно при программировании сценариев оболочки?

4b9b3361

Ответ 1

Он поддерживает списки, но не как отдельную структуру данных (игнорируя массивы на данный момент).

Цикл 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

Ответ 2

Для создания списка просто сделайте это

colors=(red orange white "light gray")

Технически это массив, но, конечно же, он имеет все функции списка.
Даже список python реализованы с массивом