bash多行Heredoc(带有Sed)的正确语法是什么?

克里斯·里杰斯

使用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  

我如何获得第一个示例?

变形

AIUI,不是问题是问题,而是在不同时间了解哪个进程在做什么。

在运行sed命令的脚本中Bashsed甚至在看到变量之前就将其替换如果是多行字符串,则需要对进行转义sedsed手册页中,在i命令下:

i \     Insert text, which has each embedded newline preceded by a back-slash.

就个人而言,我建议您使用cat或echo(如果可以的话)(或像Python / Ruby / PHP这样的脚本编写语言)将模板分解为原子元素,以便您可以将相关部分简单地连接在一起。

但是,如果您确实希望继续使用当前方法,则至少需要用反斜杠换行符替换换行符,请尝试以下操作:

echo $APPLICATION_ENV_STATE | sed 's/$/\\/'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash多行Heredoc(带有Sed)的正确语法是什么?

来自分类Dev

带有作用域变量的ng-show的正确语法是什么

来自分类Dev

在bash中匹配变量的正确语法是什么?

来自分类Dev

select的正确语法是什么?

来自分类Dev

LIKE的正确语法是什么?

来自分类Dev

查询的正确语法是什么

来自分类Dev

bash中的@(... | ... | ...)语法是什么?

来自分类Dev

链接到带有参数的路由的正确方法是什么?

来自分类Dev

插入SQL Heredoc正确语法

来自分类Dev

Bash:用sed创建一个空格的语法是什么

来自分类Dev

在bash脚本中,=〜在右侧带有“”的用途是什么?

来自分类Dev

访问结构变量的正确语法是什么?

来自分类Dev

Swift中正确的块语法是什么

来自分类Dev

将此写入文件的正确语法是什么?

来自分类Dev

此操作的正确语法是什么?

来自分类Dev

正确的FilterObject ORDS语法是什么?

来自分类Dev

分组行的正确语法是什么

来自分类Dev

mqtt重新连接的正确语法是什么?

来自分类Dev

Java的BigDecimal的正确语法是什么?

来自分类Dev

ansible库存文件的正确语法是什么?

来自分类Dev

Component.Replace的正确语法是什么?

来自分类Dev

该JavaScript代码的正确语法是什么?

来自分类Dev

语法问题:正确的做法是什么?

来自分类Dev

正确的函数回调语法是什么?

来自分类Dev

MySQL TOP的正确语法是什么?

来自分类Dev

SQL限制无效:正确的语法是什么?

来自分类Dev

SQL Server - 正确的语法是什么?

来自分类Dev

actionPerformed(ActionEvent e) 的正确语法是什么?

来自分类Dev

location.href 的正确语法是什么