12.12制定规则中的新规定

在shell脚本中,可以在字符串文本中使用换行符。但在的shell语句生成文件规则,这是不可能的:不带反斜杠的换行符是shell之间的分隔符声明。而前面有反斜杠的换行符变为根据POSIX,是shell语句的一部分,但被替换了,加上它前面的反斜杠,用GNU中的空格制作3.80及以上。那么,如何在字符串中使用换行符字面意义的?

技巧是设置一个包含换行符的shell变量:

nlinit=`echo'nl=“';echo'”“'';eval“$$nlinit”

例如,为了创建多行'sed公司'表达式在文件的每一行后面插入一个空行,可以使用此代码:

nlinit=`echo'nl=“';echo'”“'';eval“$$nlinit”\sed-e“s/\$$/\\$${nl}/”<input>输出