我可以在shell_exec中包含php变量吗?
我想让这条线工作$ Dname是一个php变量
shell_exec(cat . $Dname.txt . | sed "s#,]}#]}#g" > $Dname2.txt);
答案 0 :(得分:3)
您尚未引用shell命令,应该使用escapeshellarg()
转义$Dname
。注意我也已经转义sed
表达式中的引号,但在这种情况下,它们可以更改为单引号而不会产生负面影响。
$Dname = escapeshellarg($Dname);
shell_exec("cat $Dname.txt . | sed \"s#,]}#]}#g\" > {$Dname}2.txt");
答案 1 :(得分:1)
您可以这样做,但与PHP中的任何其他字符串一样,这需要引用:
shell_exec('cat '.$Dname.'.txt | sed "s#,]}#]}#g" > '.$Dname2.'.txt');
如果需要,您应该使用escapeshellarg()
来转义用户输入。