Как создать список строк из l oop in bash? - PullRequest
2 голосов
/ 21 февраля 2020

У меня есть следующее l oop:

for chr in {1..3};
do
futureList="${variable1} ${variable2}"
done

Я хотел бы изменить его так, чтобы futureList добавлял новый набор переменных в каждом последовательном цикле. Ожидаемый результат должен выглядеть примерно так:

echo $futureList

string1 string2, string3 string4, string5 string6 etc

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Вот как я бы это сделал.

n=1
for chr in {1..3}; do
  array1+=("string$n") array2+=("string$((n+3))")
  ((n++))
done

Сохраните форматированный вывод в переменной futurelist.

printf -v futurelist '%s %s, ' "${array1[@]}" "${array2[@]}"

Проверьте вывод

echo "$futurelist"

Выходные данные

string1 string2, string3 string4, string5 string6, 

Я почти уверен, что кто-то найдет больше способов добиться большего.

1 голос
/ 21 февраля 2020

Это хороший вариант использования массивов:

var1='string1'
var2='string2'

futureList=() # declare an array

for i in {1..5}; do
   futureList+=("$var1 $var2") # inside loop append value to array
done

# check array content
# decclare -p futureList
# or use printf
printf '%s\n' "${futureList[@]}"

string1 string2
string1 string2
string1 string2
string1 string2
string1 string2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...