我有这个多行字符串(包括引号):
abc'asdf"
$(dont-execute-this)
foo"bar"''
如何在Bash中使用Heredoc将其分配给变量?
我需要保留换行符。
我不想转义字符串中的字符,这很烦人...
"EOF"变量中的“#” (如果通过调用eval $VAR)将导致脚本的所有其余部分都被注释,因为在这里$ VAR将被视为一行; 为了能够#在多行脚本中使用bash 注释,请在eval call: eval“ $ VAR”`中也将双引号引起来。
eval此方法时遇到了问题,但是由于它是某些程序包的一部分,因此没有跟踪它,该程序包eval的一些变量在其配置文件中定义。错误消息为:/usr/lib/network/network: eval: line 153: syntax error: unexpected end of file。我只是切换到另一个解决方案。
'EOF',并使用` in the content: if the second line hascd`命令转义了换行符,然后返回:“ .sh:X行:cd:命令未找到 ”; 但是如果我双引号"EOF";然后bash变量${A}不会保留为字符串(它们会被扩展);但随后,换行符被保留下来-而且,我没有运行一个命令一个问题cd在第二行(和两个“EOF”和“EOF”似乎也很好地一起玩eval,运行一组存储在命令字符串变量)。干杯!