为什么我在php exec里面的bash里面“sh”调用“echo $ 0”?

时间:2014-02-17 20:44:07

标签: php linux bash shell exec

我有这样的代码:

public function shell($code) {
    $code = preg_replace('/"/', '\\"', $code);
    exec('bash -c "' . $code . '"', $result);
    return $result;
}

当我打电话给shell("echo $0");时,我会嘘声而不是bash,为什么?

1 个答案:

答案 0 :(得分:3)

原始shell正在扩展doublequotes中的变量。要防止变量扩展,请使用单引号:

exec("bash -c '" . $code . "'", $result);