我在php中有一个小的foreach循环,但结果不会传递给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"
当尝试使用$ line调用shell脚本时,临时文件将被创建但是为空。我的所有权限都设置为777,调用脚本的组与文件夹的所有者相同。我已经回顾了关于php循环的其他帖子,但似乎找不到与我的问题完全匹配的任何内容。
提前感谢任何见解。
答案 0 :(得分:1)
需要向$line
添加单引号。
exec("sh read.sh '$line' >> tempfile");