【发布时间】:2015-06-08 09:27:50
【问题描述】:
在使用 Sed 搜索/插入配置文件时,我遇到了错误。是什么原因造成的,我该如何解决?
我要插入的 Heredoc 可以定义如下:
read -d '' APPLICATION_ENV_STATE <<'EOF'
defined('APPLICATION_ENV') || define('APPLICATION_ENV',(getenv('APPLICATION_ENV')
? getenv('APPLICATION_ENV') : 'production'));
EOF
虽然我的 Sed 命令使用如下变量:
sed -i "/\/\/ \*\* MySQL settings \*\* \/\//i$APPLICATION_ENV_STATE" wp-config.php
结果:
sed: -e expression #1, char 1: unknown command: `?'
除了命令错误后的额外字符。
但是,以下 Heredoc 有效,但在我的文本文件中产生了一些不太漂亮的格式:
read -d '' APPLICATION_ENV_STATE <<'EOF'
defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
EOF
如何让第一个示例工作?
【问题讨论】:
-
尝试转义问号。 (\?)
-
看起来
$APPLICATION_ENV_STATE中的换行符是问题所在。
标签: bash sed multiline heredoc