我正在使用Bash腳本編寫一個實用程序,我想包含一個更新功能。目前該腳本如下Ruby的寶石理念,例如一個命令與多個子:更新自我的Bash腳本?
gem help
gem version
gem update
理想情況下,你可以運行:
myscript update
但我不知道這是可能的。
這是怎麼回事?我知道寫入當前正在運行的腳本是一個糟糕的想法。
我正在使用Bash腳本編寫一個實用程序,我想包含一個更新功能。目前該腳本如下Ruby的寶石理念,例如一個命令與多個子:更新自我的Bash腳本?
gem help
gem version
gem update
理想情況下,你可以運行:
myscript update
但我不知道這是可能的。
這是怎麼回事?我知道寫入當前正在運行的腳本是一個糟糕的想法。
爲什麼寫入當前正在運行的腳本是一個壞主意? – 2011-04-26 19:25:57
@user unknown:這取決於你如何編寫,文件系統的語義以及你的shell的實現。假設你的shell一次只讀取一個文件中的指令,並且你設法修改文件的方式使得它解釋的文件已經從它下面改變了。它可能繼續在不同的地方執行,部分通過指令執行,甚至超過文件的末尾。 – 2011-04-26 22:00:26
在執行之前,shell不會將整個腳本加載到內存中嗎? – 2011-04-27 03:51:18