34
我有abc.sh
:如何在sed中的命令中使用变量?
exec $ROOT/Subsystem/xyz.sh
在UNIX系统中,如果我打印echo $HOME
然后我得到/HOME/COM/FILE
。
我想使用sed替换$ROOT
与$HOME
。
预期输出:
exec /HOME/COM/FILE/Subsystem/xyz.sh
我试过了,但我没有得到预期的输出:
sed 's/$ROOT/"${HOME}"/g' abc.sh > abc.sh.1
增加:
如果我有abc.sh
exec $ROOT/Subsystem/xyz.sh $ROOT/ystem/xyz1.sh
然后用
sed "s|\$INSTALLROOT/|${INSTALLROOT}|" abc.sh
它仅更换第一$ROOT
,即,输出即将作为
exec /HOME/COM/FILE/Subsystem/xyz.sh $ROOT/ystem/xyz1.sh
的可能重复[替换shell脚本的字符串(HTTP ://stokesoverflow.com/questions/3306007/replace-a-string-in-shell-script) – tripleee
@tripleee虽然我确信这将是许多其他问题的副本,不是最好的,因为它没有在变量中包含斜杠。其中的所有答案都使用'/'作为分隔符。明显的东西,我知道但留下更好的(重复)问题的空间。 – devnull
在[sed脚本中的shell变量]可能重复(http://stackoverflow.com/questions/7006910/shell-variables-in-sed-script) –