我正在開發一個服務器應用程序,最近我在測試服務器(Debian Squeeze)上遇到了這個奇怪的錯誤。popen失敗,「sh:<command>:not found」
每個可執行文件我傳給POPEN失敗,一個消息:
sh: sort: not found // happens to any command
發生這種情況,無論我是否指向由「類型」或保持短返回的完整路徑。 正如前面提到的,這隻發生在一個測試環境中,以增加混淆,運行相同的操作系統並且沒有任何問題。
POPEN顯然使用SH執行命令,但如果我運行相同的命令直通命令行(bash或SH),一切都很好
在此先感謝
(PS:偶!試過的Python os.popen剛剛敲定這個摸不到頭腦,和它的作品)
編輯 這是一個簡單的調用失敗:
個$command="tail -10 myfile";
$handle = popen($command.' 2>&1','r');
if($handle){
while (!feof($handle)){
....//process buffer
}
}
回報:
sh: tail: not found
請發佈實際調用,並且如果使用任何變量顯示它們如何生成。 – 2010-04-27 00:18:55
使用二進制文件的完整路徑的結果是相同的? (我的意思是:whereis尾巴) – Cesar 2010-04-27 00:53:38
是的,只要其運行通過popen,sh就會返回錯誤信息。 – smallmeans 2010-04-27 00:59:30