這是我正在學習的一個學校項目。如何執行shell腳本或可執行文件?
我在寫Web服務器。如果請求的資源具有擴展名'cgi',我需要fork和執行程序。如果CGI是編譯的可執行文件,這個工程:
execl(path, (char*) 0);
但是,如果CGI程序是需要解釋的腳本,我需要做這樣的事情:
execl("/bin/sh", path, path, (char*) 0);
我怎樣才能寫我的代碼,以便它可以處理任何一種情況?我的shell如何做到這一點?我是否應該使用file
程序來確定它是可執行文件還是文本,以及它是否爲文本,然後假定它需要解釋?
我也這麼認爲,但我得到「Exec格式錯誤」 –
@TrevorDixon:當您從shell提示執行腳本時會發生什麼?腳本的第一行是什麼樣的? –
達尼特,你說得對。我有一個錯字!我的測試腳本錯過了shebang的「爆炸」部分。我感到尷尬。謝謝! –