Подтвердить что ты не робот

Объединение двух строковых переменных в bash добавление новой строки

У меня есть переменная final_list, которая добавляется переменной url в цикле как:

while read url; do
    final_list="$final_list"$'\n'"$url"
done < file.txt

К моему удивлению, \n добавляется как пробел, поэтому результат:

url1 url2 url3

пока я хотел:

url1
url2
url3

Что не так?

4b9b3361

Ответ 1

В переменной "$final_list" появляются новые строки. echo он выглядит как с двойными кавычками:

echo "$final_list"
url1
url2
url3

ИЛИ лучше использовать printf:

printf "%s\n" "$final_list"
url1
url2
url3

Ответ 2

Это может зависеть от того, как вы пытаетесь отобразить конечный результат. Попробуйте вывести результирующую переменную в двойные кавычки:

echo "$final_list"