2013-02-23 71 views
1

長話短說,我需要下面的命令才能在bash腳本中工作。在virsh或sudoers的腳本中使用sed和EDITOR變量

我需要更改虛擬kvm使用的網絡子網。讓我感到難過的是試圖改變它作爲一個命令。通常你運行命令sudo virsh net-edit默認它會打開一個vi(或其他)會話,然後編輯並關閉。

網絡編輯選項允許用戶使用他們的首選編輯器編輯虛擬網絡的XML配置。 net-edit啓動命令(或腳本)在用戶$ 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行:出口:`網編輯「:沒有一個有效的標識符

+1

您收到的具體錯誤消息可能會提供有關錯誤的線索。 – 2013-02-23 02:07:42

+0

這是一個標準的腳本錯誤,可能與導出或其他東西。 「第62行:export:'net-edit':不是有效的標識符」 – 2013-02-23 18:34:00

+0

你在發佈的命令前加了'export'嗎?如果是這樣,不要。 – 2013-02-23 20:57:53

回答

1

我在一些方面遇到了sed命令的問題,並且一度忘了用root權限運行它,所以簡而言之,上面的命令將在腳本中起作用。