我的配置中有一个变量,我想用一个值替换它。
ROOT="rROOT"
Run Code Online (Sandbox Code Playgroud)
我想将其替换为
ROOT="$root"
Run Code Online (Sandbox Code Playgroud)
$root 的值也是如此(重要的是引号)。
到目前为止我已经尝试过这种方式
sed -i s/'ROOT=rROOT'/'ROOT="$root"'/g $directory/settings.conf
Run Code Online (Sandbox Code Playgroud)
结果是
ROOT="$root"
Run Code Online (Sandbox Code Playgroud)
但这存储在变量 $root 中(它始终是一个路径)
root: /
Run Code Online (Sandbox Code Playgroud)
如何用 $root 的值替换 rROOT?
Sed 版本:(GNU sed)4.2.2
好吧,不想破坏我的测试脚本:
cat tageslog.sh | sed "s/alt=185094/alt=\${root}/g"
Run Code Online (Sandbox Code Playgroud)
使用双引号,但屏蔽美元符号,这样在调用 sed 时它就不会丢失并且 root 不会被解释。
使用 ${root} 而不是“$root”。
sed "s/ROOT=.rRoot./ROOT=\${root}/g" $directory/settings.conf
Run Code Online (Sandbox Code Playgroud)
如果有效,请使用 -i 开关:
sed -i "s/ROOT=.rRoot./ROOT=\${root}/g" $directory/settings.conf
Run Code Online (Sandbox Code Playgroud)