我有一个变量,它由循环中final_list
的变量附加为:url
while read url; do
final_list="$final_list"$'\n'"$url"
done < file.txt
令我惊讶的\n
是,它被附加为一个空格,所以结果是:
url1 url2 url3
虽然我想要:
url1
url2
url3
怎么了?
变量中有很多新行"$final_list"
。echo
它像这样用双引号:
echo "$final_list"
url1
url2
url3
或更好地使用printf
:
printf "%s\n" "$final_list"
url1
url2
url3
这可能取决于您如何尝试显示最终结果。尝试在双引号内输出结果变量:
echo "$final_list"
如果有人想尝试,可以再添加一个可能的选项。
使用字符串值:
命令 :echo "This is the string I want to print in next line" | tr " " "\n"
输出 :
This
is
the
string
I
want
to
print
in
next
line
使用 Vars:
finallist="url1 url2 url3"
url="url4 url5"
echo "$finallist $url" | tr " " "\n"
输出 :
url1
url2
url3
url4
url5
如果您希望一行中的单词少而下一行中的单词少,请尝试使用不同的分隔符。(如 - 或 : 或 ; 或等...)