Я прочитал какой-то фрагмент кода в build.include
set -u
prepare_build_args() {
IFS=',' read -r -a BUILD_ARGS_ARRAY <<< "$@"
for i in ${BUILD_ARGS_ARRAY[@]}; do
BUILD_ARGS+="--build-arg $i "
done
}
Мне сложно понять этот код, потому что я новичок в оболочке.
Является ли IFS
переменная со значением ','?Почему за ним следует команда read
?
Что означает -r -a
?и что <<<
делает?
- BUILD_ARGS_ARRAY [@] не определено ранее.и есть
set -u
, что означает, что неназначенная переменная будет распознана как ошибка. Это проблема объема?И что означает [@]
? 1023 * - Наконец, в моем понимании BUILD_ARGS сохранил все вещи в BUILD_ARG_ARRAY, но он не возвращается из функции
prepare_build_args
?