我在php中使用ssh2#u exec函数,为什么它不';不能传递超过3个参数?

我在php中使用ssh2#u exec函数,为什么它不';不能传递超过3个参数?,php,ssh2-exec,Php,Ssh2 Exec,为什么ssh2\u exec函数传递的参数不超过三个 $stream_1 = ssh2_exec($ssh, "/root/Script/Auto_Traces/show_ng_trace.sh $a $b $c $d $e"); 在这种情况下,只有$a$b$c在传递,而不是$d和$e,我如何解决它呢?我怀疑前3个变量中的某些变量中有空格,因此它们被视为多个参数。然后忽略最后两个参数。 如果变量中有空格(或其他特殊字符),则应将其转义 $ae = escapeshellarg($a); $be

为什么
ssh2\u exec
函数传递的参数不超过三个

$stream_1 = ssh2_exec($ssh, "/root/Script/Auto_Traces/show_ng_trace.sh $a $b $c $d $e");

在这种情况下,只有
$a
$b
$c
在传递,而不是
$d
$e
,我如何解决它呢?

我怀疑前3个变量中的某些变量中有空格,因此它们被视为多个参数。然后忽略最后两个参数。 如果变量中有空格(或其他特殊字符),则应将其转义

$ae = escapeshellarg($a);
$be = escapeshellarg($b);
// repeat for the rest of variables
$stream_1 = ssh2_exec($ssh, "/root/Script/Auto_Traces/show_ng_trace.sh $ae $be $ce $de $ee");

测试一下。打印(“/root/Script/Auto_Traces/show_ng_trace.sh$a$b$c$d$e”);你得到你期望的了吗?我不理解你的观点,但我确信只有$a$b$c通过了……d和$e有价值吗?它们是刺痛的吗?它们里面有空间吗?是否已打开调试以了解要发送的内容?