替换外部bash脚本中的特定变量

时间:2017-08-11 11:47:28

标签: linux bash shell variables

我是编码的新手,已经在stackoverflow上找到了一些关于这个的主题,但是它无法使它工作,因为它们似乎对我过度扩展。我可能需要一些指导。

我需要在外部bash脚本中更改一些变量' comlink.conf'。但只有特定的。其他人应该像他们一样离开。

ready=0
test=1
new=2

echo 'ready='$ready > comlink.conf
sleep 10

ready=1

echo 'ready='$ready > comlink.conf

如果我这样做,' test = 1'和' new = 2'将被完全覆盖并从文件中删除。这不应该发生。

最简单的方法是什么?

2 个答案:

答案 0 :(得分:1)

如果我理解你,你想要替换文件中的一行。你不应该使用 echo

相反,我建议使用sed:

sed '/.*ready*/s/.*/ready=1/' comlink.conf

答案 1 :(得分:1)

您可以sed使用不同的替换,例如:

sed 's/ready=.*/ready=1/' comlink.conf > tmp
mv tmp comlink.conf

或者如果您使用的是GNU sed:

sed -i 's/ready=.*/ready=1/' comlink.conf

或BSD sed:

sed -i'' 's/ready=.*/ready=1/' comlink.conf