替换字符串的方法之一sed
可以如下完成:
sed -i 's/old_str/new_str/' file.txt
然而如果replace.sh
是
sed -i 's/$1/$2/' $3
该命令./replace.sh old_str new_str file.txt
似乎不起作用——replace.sh
当然是在可执行之后。这是为什么?
我知道rpl
它的作用与我打算做的完全一样replace.sh
,但我想了解为什么它不起作用。
答案1
单引号内没有参数扩展(请参见之前在 stackoverflow 上的回答)
toto=1
echo '$toto'
> $toto
echo "$toto"
> 1
只需将单引号替换为双引号,您的脚本就会执行您所期望的操作。