在bash shell脚本中使用时,多行变量不适用于参数 脚本widgets.sh:问题:

问题描述

我有一个脚本,用于通过wp-cli在WordPress网站上设置几个认小部件。

脚本widgets.sh:

read -r -d '' TEXT << EOM
<strong>Line1</strong>
 
Address
 
Phone: 555-x
E-mail: [email protected]
EOM

sudo --user=$USRNAME -s wp widget add text footer-1 999 --title="Widget1" --filter="true" --visual="true" --text="$TEXT"

问题:

我的问题在于,当我使用其中的这些命令调用shell脚本时,例如通过运行

bash ~/widgets.sh

将变量$ TEXT发送到wp-cli后,将其换行符删除。 如果我添加

echo "$TEXT"

将其与脚本文件相呼应,并保留适当的换行符,这只会增加我的困惑。

如果我将命令复制并粘贴到终端中,它将正确保留HEREDOC中的换行符。

我不明白为什么,但是总体上我对外壳程序脚本和bash有很多不了解的地方,所以我希望有人能启发我:)

谢谢!

解决方法

在html上下文中,源代码中的行号未显示在呈现的页面上。如果您在行尾添加
标记,则换行符应再次出现在该行。

是否可以帮助您使用nl2br