我在MIME中有一个模板电子邮件,部分电子邮件正文是占位符${result}
。
<body>
<p>${result}</p>
</body>
在bash脚本中,我有一个变量$RESULT
,它将下表存储在一个字符串中。
----------------------------------------------------
Sydney Tokyo London New York
product1 100 120 0 70
product2 4 80 210 110
product3 150 50 80 20
----------------------------------------------------
我需要更换几个占位符(只是一个短字符串或一个单词),所以我使用了以下sed
命令,但是它返回错误:
sed -e "s/\${subject}/$1/" \
-e "s/\${client}/$NAME/" \
-e "s/\${result}/$RESULT/" temp-email > client-email
错误:
sed: -e expression #3, char 64: unterminated `s' command
我知道这与\n
有关,但我刚开始学习bash和MIME,不知道如何用$RESULT
替换占位符
提前致谢
答案 0 :(得分:2)
您可以按\n
使用参数展开
RESULT=${RESULT//$'\n'/'\n'}
或者使用Perl而不是处理替换中的换行符:
CLIENT=$NAME RESULT=$RESULT SUBJECT=$1 perl -pe '
s/\${(subject|client|result)}/$ENV{ uc $1 }/g'