我今天在我的一个脚本中发现了一个奇怪的错误。 首先是一些背景。脚本顺序运行一堆命令并创建一个HTML模板,然后发送。现在这个特殊的模板被扰乱了,我无法理解为什么。这是一个样本:
//错误。看到第二行被剪切。字符串应为"受影响的CI序列号"。此外,电子邮件应以&#34开头;亲爱的团队&# 34;并且它不在应该的位置。
Affected CI Name: <name>
cted CI Serial Number: <SN>
Dear Team,
在脚本中我没有在后台运行某些内容。所有内容都应按顺序运行:
echo "<b>" Affected CI Name: "</b>" $(grep $sn $FPATH/arraylist.txt|awk '{print $2}')"<br>" >> $FPATH/mail
echo "<b>" Affected CI Serial Number: "</b>" $(grep $sn $FPATH/arraylist.txt|awk '{print $1}') "<br>" >> $FPATH/mail
我认为这个问题不会再现。我的问题是这样的事情怎么可能发生?到目前为止一切都正常运行。我错过了关于输出重定向的一些内容?据我所知,每个命令都应等待前一个返回代码,然后继续下一个。
// Linux版
2.6.26-2-amd64#1 SMP Sun Mar 4 21:48:06 UTC 2012 x86_64 GNU / Linux
答案 0 :(得分:1)
试试看它是否有帮助:
execute_commands()
{
echo "<b>" Affected CI Name: "</b>" $(grep $sn $FPATH/arraylist.txt|awk '{print $2}')"<br>"
echo "<b>" Affected CI Serial Number: "</b>" $(grep $sn $FPATH/arraylist.txt|awk '{print $1}') "<br>"
}
execute_commands >> $FPATH/mail
我已经复制/粘贴了你的命令,假设它们有效。不同之处在于只需一次重定向即可处理所有内容,希望这可以避免任何可能影响您所看到的行为的缓冲问题。