在 bash shell 脚本中使用时,多行变量不适用于参数

multi line variable does not work for parameters when used in a bash shell script

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

脚本widgets.sh:

read -r -d '' TEXT << EOM
<strong>Line1</strong>
 
Address
 
Phone: 555-x
E-mail: so@you.say
EOM

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

问题:

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

bash ~/widgets.sh

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

echo "$TEXT"

在脚本文件中,它与正确保留的换行符相呼应,这只会增加我的困惑。

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

我不明白为什么,但是关于 shell 脚本和一般的 bash 有很多我不明白的地方,所以我希望有人能启发我 :)

提前致谢!

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

希望对您使用有帮助nl2br