更改shell_exec中的目录不起作用

时间:2015-03-19 06:02:32

标签: php exec shell-exec

我有运行BASH脚本的例程:

// $cmd is something like '/var/tmp/script.sh'
function runshell($cmd)
{
    $work_dir = dirname($cmd);
    $work_file = basename($cmd);
    $message = shell_exec("cd " . $work_dir . " && " . $work_file . " 2>&1");
    return $message;
}

问题是它没有更改目录而且找不到$work_file

1 个答案:

答案 0 :(得分:0)

<强>解决方法1

使用文件的完整路径

$message = shell_exec($work_dir . "/" . $work_file . " 2>&1");

<强>溶液2

此外,您可以使用chdir()。它将改变php脚本的当前工作目录。

chdir($work_dir);
$message = shell_exec($work_file . " 2>&1");