我問,因爲我最近對正在執行的KornShell(ksh)腳本進行了更改。在我保存更改後不久,執行過程失敗。從錯誤消息來看,它看起來好像正在運行的進程已經看到了我的一些變化 - 但不是全部 - 。這強烈暗示當調用shell腳本時,整個腳本不會被讀入內存。被調用時是否全部讀取shell腳本?
如果這個結論是正確的,則表明應該避免對正在運行的腳本進行更改。
$ uname -a
SunOS blahblah 5.9 Generic_122300-61 sun4u sparc SUNW,Sun-Fire-15000
此問題可能是[已經回答的問題]的副本(http://stackoverflow.com/questions/3398258/edit-shell-script-while-its-running)。 – LRA
Shell腳本是以塊的形式讀取的,所以如果有一個大的循環,那麼循環的所有材料都會被讀取,但超出的材料可能還沒有被處理。我當然在運行時遇到了shell腳本的更改,導致出現問題 - 避免它。但它並不總是會發生,並取決於shell,平臺和腳本。它也可能受'塊大小'的影響; shell可以輕鬆地讀取塊中的文件,並在當前不再需要讀取更多內容時停止。 –
@Jonathan:斷言shell腳本在塊中讀取符合我的經驗,並且可以解釋執行腳本爲什麼選擇了我的更改的不完整版本。 – Kirby