Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在sed中展开变量_Bash_Variables_Sed - Fatal编程技术网

Bash 在sed中展开变量

Bash 在sed中展开变量,bash,variables,sed,Bash,Variables,Sed,我需要在bash脚本中使用sed,以便在脚本的任何行号之后添加带有一些值对的行(在工作下面) 但是我需要脚本bash(sh)来扩展变量(下面是不工作的) 将单引号更改为双引号: manbash: 将字符括在单引号中保留 引号中的每个字符。 将字符括在双引号中可保留 引号中的所有字符,美元、`、\、和除外, 启用历史扩展时!。字符$和`保留 它们在双引号中的特殊含义。 只需使用双引号而不是单引号。您还需要使用{}正确地分隔数字行变量,并转义\ sed -i.bak "${number_line}i

我需要在bash脚本中使用sed,以便在脚本的任何行号之后添加带有一些值对的行(在工作下面)

但是我需要脚本bash(sh)来扩展变量(下面是不工作的)


将单引号更改为双引号:

manbash

将字符括在单引号中保留
引号中的每个字符。
将字符括在双引号中可保留
引号中的所有字符,美元、`、\、和除外,
启用历史扩展时!。字符$和`保留
它们在双引号中的特殊含义。

只需使用双引号而不是单引号。您还需要使用
{}
正确地分隔
数字行
变量,并转义
\

sed -i.bak "${number_line}i\\$var1=$var2" $var3
我个人更希望看到所有变量都使用
{}
,结果如下:

sed -i.bak "${number_line}i\\${var1}=${var2}" ${var3}

必要,但不足以解决OP的问题。我有点困惑。如果提出一个问题,那是因为,我尝试了几种选择。“”和“”,不要为我工作。在阅读了第一反应后,找一位市长knowledg,我可以继续我的工作。@Abdelkarimateossanchez你可以像那时一样标出最上面的答案。很多坦克。对我来说有点困惑。为我工作
sed -i.bak "${number_line}i\\$var1=$var2" $var3
sed -i.bak "${number_line}i\\${var1}=${var2}" ${var3}