在 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
我有一个脚本,用于通过 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