У вас есть несколько проблем.Вы не создаете массив, вы создаете длинную строку в качестве первого элемента.Чтобы создать массив с командой в качестве каждого элемента, необходимо заключить значения, присвоенные массиву, в круглые скобки (...)
, например,
COMP_FILE+=(docker-compose.con-etl.yml)
COMP_FILE+=(${PWD}/docker-compose.abc.yml)
COMP_FILE+=(${PWD}/docker-compose.cde.yml)
COMP_FILE+=(${PWD}/docker-compose.efg.yml)
COMP_FILE+=(${PWD}/docker-compose.hij.yml)
COMP_FILE+=(${PWD}/docker-compose.klm.yml)
COMP_FILE+=(${PWD}/docker-compose.nmo.yml)
COMP_FILE+=(${PWD}/docker-compose.pqr.yml)
. Для перебора массива добавьте "-f "
в качестве префикса кВ каждой команде вы можете использовать цикл в стиле C для циклического повторения по каждому индексу, присваивая "-f "
в качестве префикса:
for ((i = 0; i < ${#COMP_FILE[@]}; i++)); do
COMP_FILE[i]="-f ${COMP_FILE[i]}"
done
Чтобы подтвердить добавление префиксов, просто выведите результирующий массив,
for i in "${COMP_FILE[@]}"; do
echo "$i"
done
Вывод
$ bash yamlfile.sh
-f docker-compose.con-etl.yml
-f /tmp/tmp-david/docker-compose.abc.yml
-f /tmp/tmp-david/docker-compose.cde.yml
-f /tmp/tmp-david/docker-compose.efg.yml
-f /tmp/tmp-david/docker-compose.hij.yml
-f /tmp/tmp-david/docker-compose.klm.yml
-f /tmp/tmp-david/docker-compose.nmo.yml
-f /tmp/tmp-david/docker-compose.pqr.yml
Сообщите мне, если у вас есть дополнительные вопросы.
Редактирование каждого запроса в одной строке
Информация хранится в массиве по мере необходимости.Вы помещаете это в любом формате, который вам нравится, например, «все в одну строку»
echo "${COMP_FILE[@]}"
-f docker-compose.con-etl.yml -f /tmp/tmp-david/docker-compose.abc.yml -f /tmp/tmp-david/docker-compose.cde.yml -f /tmp/tmp-david/docker-compose.efg.yml -f /tmp/tmp-david/docker-compose.hij.yml -f /tmp/tmp-david/docker-compose.klm.yml -f /tmp/tmp-david/docker-compose.nmo.yml -f /tmp/tmp-david/docker-compose.pqr.yml
. Вы можете просто использовать расширение всех элементов в массиве в любой команде, необходимой для обеспечения того, чтобы каждый компонент был "-f ......"
.
Дайте мне знать, если это не поможет вам.