使用 bash 脚本替换配置文件变量

Replace config file variables using bash script

我试图将一个值附加到 ssh 配置文件,但如果指定两个不同的值,它似乎不起作用,它读取第一个而不是第二个。

这似乎是明智的,而不是尝试重新写入整个文件,只修改值。

当前值为:

Port 22

我要进去把值改成:

Port 222

我能想到的最好的是:

sed -c -i "s/\(Port *= *\).*/$REPLACEMENT_VALUE/" /etc/ssh/sshd_config

但是我知道这是不对的,因为它的工作方式是期望在值和变量之间有一个等号。

我需要脚本来做这样的事情:

我想你是这个意思,

sed 's/.*\bPort\b.*/REPLACEMENT_VALUE/' file

示例:

$ REPLACEMENT_VALUE="Port 222"
$ echo -e "foo\nPort 22" | sed "s/.*\bPort\b.*/$REPLACEMENT_VALUE/"
foo
Port 222