在脚本中使用带有EDITOR变量的sed用于virsh或sudoers

时间:2013-02-23 01:54:38

标签: bash sed

长话短说,我需要以下命令才能使用bash脚本。

我需要更改虚拟kvm正在使用的网络子网。让我感到困难的是试图让它作为命令改变。通常,您运行命令sudo virsh net-edit default ,它会打开一个vi(或其他)会话,您可以编辑并关闭它。

net-edit 选项允许用户使用首选编辑器编辑虚拟网络的XML配置。 net-edit启动命令(或脚本)在users $ EDITOR环境变量中定义,并为其传递虚拟网络的XML配置的临时副本。

当用户退出编辑器时,net-edit会检查临时文件是否已更改。

所以对我来说,我想通过sed传递这个,所以我可以在脚本中使用它。以下示例可以在命令行中使用,但在脚本中对我不起作用。我不确定我做错了什么,但我还没想出来。如果有人有想法,我们将不胜感激。

这适用于命令行,但不适用于脚本。获取有关该命令的错误消息:

    EDITOR='sed -i "s/192.168.100.1/192.168.11.1/g"' virsh net-edit default

这是一个相关的主题: Changing the dhcp IP range in Virbr0's XML file using virsh in bash script

这是错误消息

./ test:第2行:export:`net-edit':不是有效的标识符

1 个答案:

答案 0 :(得分:1)

我在几个方面遇到了sed命令的问题,有一次我忘了用root权限运行它,所以简而言之,上面的命令将在脚本中运行。