2015-09-03 45 views
2

我试图在printf这样巴什 - 如何打印多行字符串(以“ n”)用printf

printf "hi\n" 
printf "next line here\n" 

我不能做以下

打印多行字符串
text_content=" 
hi 
next line here 
" 

printf $text_content 

有没有其他办法?

+1

以什么样的方式呢'printf的 “$ TEXT_CONTENT”'*不*工作?它复制了赋值中的原生新行,以及将'\ n'转换为换行符。如果你不引用它,那么分词将导致只显示第一个单词 – Petesh

+1

引用你的变量 –

+1

为什么你在'text_content'中有'\ n'和嵌入的换行符? – chepner

回答

5

引用该变量应该能够做到这一点。然而,在你的例子中,你会得到双换行符。

printf "$text_content" 
+2

如果变量有'%'符号,最好使用'printf'%s \ n“”$ variable“ – user000001

1

如果printf的是没有必要的,那么你可以使用回声:

var="one\ntwo" 
echo -e $var