读取sed中的输入

读取sed中的输入

我是 shell 脚本新手。我正在一点一点地学习。我更熟悉 php,它现在正在对我不利。

无论如何,我正在编写一个 shell 脚本,并使用以下内容读取输入:

read $foo

我现在想在 sed 字符串替换中使用这个变量,如下所示:

sed -i 's/replaceme/$foo' myfile.txt

我得到的是字面替换,而不是 $foo 实际等于的内容。相反,我希望它成为用户的输入:

例子:

使用这一行( read $foo)。假设我输入“bar”。因此$foo='酒吧'来自用户输入。

电流输出: $foo

所需输出 bar

希望这是有道理的。

答案1

简短的回答:使用双引号而不是单引号。

单引号可以防止扩展 shell 变量,而双引号则不会。

有关更多详细信息,请参阅http://www.grymoire.com/Unix/Quote.html

完整的详细信息包含在 shell 的文档中,不同的 shell 之间存在一些差异,但几乎每个 Unix 风格的 shell 的基础知识都是相同的。

相关内容