Shell

編譯後的 shell 腳本對性能更好嗎?

  • October 21, 2020

經過一番Google搜尋,我找到了一種將 BASH 腳本編譯為二進制執行檔的方法(使用shc)。

我知道 shell 是一種解釋型語言,但是這個編譯器是做什麼的呢?它會以任何方式提高我的腳本的性能嗎?

要回答標題中的問題,編譯後的 shell 腳本可能會更好地提高性能——如果編譯的結果代表解釋的結果,而不必一遍又一遍地重新解釋腳本中的命令。參見例如ksh93’sshcompzsh’szcompile

但是,shc不會以這種方式編譯腳本。它不是真正的編譯器,它是一個腳本“加密”工具,具有各種效果可疑的保護技術。當您使用 編譯腳本時shc,結果是一個二進製文件,其內容不能立即讀取;當它執行時,它會解密其內容,並使用解密後的腳本執行腳本所要使用的工具,從而使原始腳本易於檢索(它在解釋器的命令行上完整傳遞,並帶有額外的間距以嘗試使更難找到)。所以整體性能總是會更差:除了執行原始腳本所花費的時間之外,還有設置環境和解密腳本所花費的時間。

引用自:https://unix.stackexchange.com/questions/615419