Да
for Item in Item1 Item2 Item3 Item4 ;
do
echo $Item
done
Вывод:
Item1
Item2
Item3
Item4
По нескольким строкам
for Item in Item1 \
Item2 \
Item3 \
Item4
do
echo $Item
done
Вывод:
Item1
Item2
Item3
Item4
Простая переменная списка
List=( Item1 Item2 Item3 )
или
List=(
Item1
Item2
Item3
)
Отображение переменной списка:
echo ${List[*]}
Выход:
Item1 Item2 Item3
Цикл по списку:
for Item in ${List[*]}
do
echo $Item
done
Выход:
Item1
Item2
Item3
Создать функцию для просмотра списка:
Loop(){
for item in ${*} ;
do
echo ${item}
done
}
Loop ${List[*]}
Для сохранения пробелов;записи списка с одинарными или двойными кавычками и расширения списка с двойными кавычками:
List=(' Item 1 '
' Item 2'
' Item 3'
)
for item in "${List[@]}";
do
echo "$item"
done
Вывод:
Item 1
Item 2
Item 3
Использование ключевого слова (команды) объявления для создания спискакоторый технически называется массивом:
declare -a List=(
"element 1"
"element 2"
"element 3"
)
for entry in "${List[@]}"
do
echo "$entry"
done
Вывод:
element 1
element 2
element 3
Создание ассоциативного массива.Словарь:
declare -A continent
continent[Vietnam]=Asia
continent[France]=Europe
continent[Argentina]=America
for item in "${!continent[@]}";
do
printf "$item is in ${continent[$item]} \n"
done
Вывод:
Argentina is in America
Vietnam is in Asia
France is in Europe
Переменные или файлы CVS в список .
Изменение внутреннего разделителя полей из пробела на то, что вы когда-либо захотите.
В приведенном ниже примере она заменяется запятой
List="Item 1,Item 2,Item 3"
Backup_of_internal_field_separator=$IFS
IFS=,
for item in $List;
do
echo $item
done
IFS=$Backup_of_internal_field_separator
Вывод:
Item 1
Item 2
Item 3
При необходимости нумерации их:
`
это называется обратный тик.Поместите команду в тики назад.
`commend`
Он находится рядом с номером один на вашей клавиатуре и / или над клавишей табуляции.На стандартной клавиатуре американского английского языка.
List=()
Start_count=0
Step_count=0.1
Stop_count=1
for Item in `seq $Start_count $Step_count $Stop_count`
do
List+=(Item_$Item)
done
for Item in ${List[*]}
do
echo $Item
done
Выходные данные:
Item_0.0
Item_0.1
Item_0.2
Item_0.3
Item_0.4
Item_0.5
Item_0.6
Item_0.7
Item_0.8
Item_0.9
Item_1.0
Познакомьтесь с поведением ошибок:
Создайте список в файле
cat <<EOF> List_entries.txt
Item1
Item 2
'Item 3'
"Item 4"
Item 7 : *
"Item 6 : * "
"Item 6 : *"
Item 8 : $PWD
'Item 8 : $PWD'
"Item 9 : $PWD"
EOF
Считать файл списка в список и отобразить
List=$(cat List_entries.txt)
echo $List
echo '$List'
echo "$List"
echo ${List[*]}
echo '${List[*]}'
echo "${List[*]}"
echo ${List[@]}
echo '${List[@]}'
echo "${List[@]}"
Справочное руководство по командной строке BASH: Специальное значение определенных символов или слов для оболочки.