Пожалуйста, объясните ниже функцию bash

Вот более простой пример:

var='a#b#c'
IFS=\# arr=($var)
echo "${arr[@]}"

Конструкция arr=(...) строит массив. Поскольку для IFS установлено значение #, значение var разбивается на слова по адресу # вместо пробелов, поэтому

IFS=\# arr=($var)

эквивалентно

arr=(a b c)

. Таким образом, массив arr состоит из элементов a, b и c.

По той же причине docCodeArr представляет собой массив, состоящий из значений imgCodeStr, разделенных на #. Вот и все.

Учтите, что если значение imgCodeStr содержит подстановочные знаки (символы среди \[?*), оболочка расширит шаблон подстановочных знаков до соответствующих имен файлов. Чтобы избежать этого, поместите set -f перед этой строкой, чтобы отключить расширение подстановочных знаков. Если вам нужно повторно включить расширение подстановочных знаков, используйте set +f.

0
10.05.2016, 21:42
0 ответов

Теги

Похожие вопросы