Создайте файл bash с именем ‘ for_list1.sh ’И добавьте следующий скрипт. Внутри цикла for используется строковое значение с пробелами. По умолчанию строковое значение разделяется пробелом. Цикл For разделит строку на слова и напечатает каждое слово, добавив новую строку.
#! / bin / bash
# Прочитать строку с пробелами, используя цикл for
дляценитьвМне нравится программировать
делать
выбросил $ значение
сделано
Выход:
$трепатьfor_list1.sh
Пример-2: Итерация строковой переменной с использованием цикла for
Создайте файл bash с именем ‘ for_list2.sh ’И добавьте следующий скрипт. Присвойте текст переменной, StringVal и прочитайте значение этой переменной, используя цикл for. Этот пример также будет работать так же, как и предыдущий, и разделит значение переменной на слова в зависимости от пробела.
#! / bin / bash
# Определить строковую переменную со значением
StringValзнак равно'Добро пожаловать в linuxhint'
# Итерировать строковую переменную, используя цикл for
длячасыв $ StringVal;делать
выбросил $ часов
сделано
Выход:
$трепатьfor_list2.sh
Пример-3: Итерация массива строковых значений
Создайте файл bash с именем ‘ for_list3.sh ’И добавьте следующий скрипт. В этом скрипте объявляется массив строковых значений с типом. Два значения в массиве, содержащие пробел: Linux Mint а также Red Hat Linux . Этот сценарий сгенерирует вывод, разделив эти значения на несколько слов и распечатав как отдельные значения. Но это не тот результат. Решение проблемы такого типа показано в следующем примере.
#! / bin / bash# Объявить массив строк с типом
объявлять -к StringArrayзнак равно('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )
# Итерировать массив строк, используя цикл for
длячасыв $ {StringArray [@]};делать
выбросил $ часов
сделано
Выход:
$трепатьfor_list3.sh
Пример-4: Распечатать строковое значение из нескольких слов как одно значение
Создайте файл bash с именем ‘ for_list4.sh ’И добавьте следующий скрипт. В этом примере каждый элемент переменной массива, StringArray содержит значения двух слов. Чтобы распечатать каждое значение без разделения и решить проблему из предыдущего примера, вам просто нужно заключить переменную массива в двойная цитата внутри цикла for.
#! / bin / bash# Объявить массив строк с типом
объявлять -к StringArrayзнак равно('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )
# Считываем значения массива с пробелом
длячасыв '$ {StringArray [@]}';делать
выбросил $ часов
сделано
Выход:
$трепатьfor_list4.sh
Пример 5: Итерация строковых значений массива с использованием '*'
Создайте файл bash с именем ‘ for_list5.sh ’Со следующим кодом. Здесь символ «*» используется для чтения всех строковых значений массива. Первый цикл for используется для отображения значений массива в несколько строк, а второй цикл for используется для отображения значений массива в одной строке.
#! / bin / bash# Объявить массив строк
LanguageArrayзнак равно('PHP' 'Джава' 'C #' 'C ++' 'VB.Net' 'Python' 'Perl')
# Печатать значения массива в строках
выбросил 'Печатать каждый элемент с новой строки'
дляval1в $ {LanguageArray [*]};делать
выбросил $ val1
сделано
выбросил ''
# Вывести значения массива в одну строку
выбросил 'Вывести все элементы в одну строку'
дляval2в '$ {LanguageArray [*]}';делать
выбросил $ val2
сделано
выбросил ''
Выход:
$трепатьfor_list5.sh
Пример-6: Итерация строковых значений, разделенных запятыми
Создайте новый файл bash с именем ‘ for_list6.sh ’ со следующим кодом. Здесь, запятая (,) используется для разделения строковых значений. IFS переменная используется для установки разделителя полей.
#! / bin / bashDataListзнак равно'HTML5, CCS3, BootStrap, JQuery'
Поле_сепараторзнак равно$ IFS
# установить запятую как внутренний разделитель полей для списка строк
IFSзнак равно
длячасыв $ DataList;
делать
выбросил $ часов
сделано
IFSзнак равно$ Field_Separator
Выход:
$трепатьfor_list6.sh
Пример 7: Совместное чтение нескольких строковых массивов
Создайте файл bash с именем ‘ for_list7.sh ’И добавьте следующий скрипт. В этом примере определены два строковых массива, которые объединены в другой массив. Внешний цикл for используется для чтения объединенного массива, а внутренний цикл for используется для чтения каждого внутреннего массива.
#! / bin / shstr_array1знак равно('Magento 2.2.4' 'WooCommerce')
str_array2знак равно(CodeIgnitor 'Laravel')
комбинироватьзнак равно(str_array1 str_array2)
дляудалосьв $ {объединить [@]}
делать
оценка 'для val в' $ {'$ arrItem'[@]}'; сделать echo '$ val'; done '
сделано
Выход:
$трепатьfor_list7.sh
Пример 8: Использование шаблона для чтения списка строк
Создайте новый файл bash с именем for_list8.sh со следующим кодом. Здесь, ‘/, /’ шаблон используется для разделения строковых значений на основе запятой.
#! / bin / sh# Определить список строковых переменных
stringList= WordPress, Joomla, Magento
# Использовать запятую как разделитель и применять как шаблон
длячасыв $ {stringList //, /}
делать
выбросил $ часов
сделано
Выход:
$трепатьfor_list8.sh
Надеюсь, примеры этого руководства помогут вам понять использование для цикла для итерации списка строк см. видео по этой теме ниже: