加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 如何在sed中的命令中使用变量?

发布时间:2020-12-15 19:25:33 所属栏目:安全 来源:网络整理
导读:我有abc.sh: exec $ROOT/Subsystem/xyz.sh 在unix框上,如果我打印echo $ HOME,那么我得到/ HOME / COM / FILE 我想用$ HOME替换$ ROOT 预期产量: exec /HOME/COM/FILE/Subsystem/xyz.sh 我试过但没有得到预期的输出: sed 's/$ROOT/"${HOME}"/g' abc.sh
我有abc.sh:
exec $ROOT/Subsystem/xyz.sh

在unix框上,如果我打印echo $ HOME,那么我得到/ HOME / COM / FILE

我想用$ HOME替换$ ROOT

预期产量:

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
说:
sed "s|$ROOT|${HOME}|" abc.sh

注意:

>使用双引号使sed可以展开变量。
>使用与/不同的分隔符,因为替换包含/
因为你不想逃脱它,就逃避模式中的$。

编辑:为了替换所有出现的$ ROOT,比方说

sed "s|$ROOT|${HOME}|g" abc.sh

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读