sed将参数视为文本

sed将参数视为文本,sed,Sed,我有一个bash脚本: #!/bin/bash echo $1 > /proc/sys/kernel/hostname sed -i "s/HOSTNAME=.*/HOSTNAME=$1/" /etc/sysconfig/network 当我运行它时,主机名文件会更新为传入的任何内容,但网络文件会得到一个文本$1 我尝试删除-I,将其更改为单引号,但没有任何效果 但谷歌告诉我双引号可以扩展变量,这应该行得通吗 感谢您的帮助。1的值是多少?OP希望在/etc/sysconfig/netwo

我有一个bash脚本:

#!/bin/bash
echo $1 > /proc/sys/kernel/hostname
sed -i "s/HOSTNAME=.*/HOSTNAME=$1/" /etc/sysconfig/network
当我运行它时,主机名文件会更新为传入的任何内容,但网络文件会得到一个文本$1

我尝试删除-I,将其更改为单引号,但没有任何效果

但谷歌告诉我双引号可以扩展变量,这应该行得通吗


感谢您的帮助。

1的值是多少?OP希望在/etc/sysconfig/network中将$1中的bash变量用作新主机名。您的问题无法重现。如果$1包含主机名,则只要它位于双引号之间,Bash就应该将它插入sed脚本中。也许你只尝试了单引号?没有错误消息?运行时sed线的set-vx示例?如果需要,但结构相同,请更改服务器名称