長話短說,我需要下面的命令才能在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行:出口:`網編輯「:沒有一個有效的標識符
您收到的具體錯誤消息可能會提供有關錯誤的線索。 – 2013-02-23 02:07:42
這是一個標準的腳本錯誤,可能與導出或其他東西。 「第62行:export:'net-edit':不是有效的標識符」 – 2013-02-23 18:34:00
你在發佈的命令前加了'export'嗎?如果是這樣,不要。 – 2013-02-23 20:57:53