2015-06-15 21 views
1

我在PHP中有一個小的foreach循環,但結果不會傳遞給shell腳本。見下圖:PHP循環未傳遞到shell腳本的結果

$contents = file("$target_dir/$user.temp.txt"); 

foreach($contents as $line) { 
    echo $line . "<br />"; 
    exec("sh read.sh $line >> tempfile"); 
} 

echo語句工作得很好,並顯示數據到屏幕,因爲它應該。然而,$ line的結果並沒有使它成爲shell腳本,但是當我用隨機字符串替換$ line時,它的確如此。這裏是shell腳本:

#!/bin/bash 
#test script 
echo "test output: $1" 
試圖調用與$行shell腳本的地方,當

,該臨時文件會得到創建,但空白。我的所有權限都設置爲777,調用該腳本的組與該文件夾是同一個所有者。我已經回顧了有關php循環的其他文章,但似乎沒有發現任何與我的問題完全匹配的內容。

在此先感謝您的任何見解。

+0

爲什麼不直接寫入文件? – codeneuss

+1

那麼'$ line'中有什麼? –

+0

$行包含$ user.temp.txt的一行。我的目標是獲取$ user.temp.txt文件的一行,將其放入shell腳本中,然後移至$ user.temp.txt中的下一行。這是登錄到設備並運行命令,如果我能得到循環工作。 – user2726737

回答

1

需要將單引號添加到$line

exec("sh read.sh '$line' >> tempfile");