shell中,如何替换双引号中内容为某个变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell中,如何替换双引号中内容为某个变量?相关的知识,希望对你有一定的参考价值。

例如:
baidu = "test"
替换上面双引号中内容为$bai
该怎么写?
额,忘了写,用的是sed

你是要替换为$bai这个字符串,还是bai变量的值?

替换为$bai这个字符串:
echo baidu = \"test\" | sed 's/\(baidu = \).*/\1"\$bai"/'

替换为bai变量的值:
echo baidu = \"test\" | sed "s/\(baidu = \).*/\1\"$bai\"/"
参考技术A sed "/test/$bai/"

描述Linux shell中单引号,双引号及不加引号的简单区别(计时2分钟)

  • 简要总结:
单引号:
可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。
双引号:
把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。
不加引号:
不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。

以上是关于shell中,如何替换双引号中内容为某个变量?的主要内容,如果未能解决你的问题,请参考以下文章

linux shell中单引号双引号和没有引号的区别

python中,如何去掉字串自带的引号

Linux shell中单引号,双引号及不加引号的简单区别

文档中如何批量替换所有的英文双引号为中文双引号,同时保证引号中的文字内容不变?

如何在sed中使用变量

Linux 命令中的单引号,不加任何参数以及双引号的作用