Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP执行Linux多行命令_Php_Ssh_Cmd - Fatal编程技术网

通过PHP执行Linux多行命令

通过PHP执行Linux多行命令,php,ssh,cmd,Php,Ssh,Cmd,在腻子我粘贴这些线,它的作品 cd /usr/local/vpnserver/ ./vpncmd 1 Hub VPN UserGet 34 但是当它尝试在php中使用exec或shell_exec执行此操作时 <?php $x = exec('cd /usr/local/vpnserver/;./vpncmd;1;;;Hub VPN;UserGet 34'); echo $x; ?> 它对我不起作用,因为在./vpncmd之后,它会询问选择1 2 3的问题 我必须输

在腻子我粘贴这些线,它的作品

cd /usr/local/vpnserver/
./vpncmd
1


Hub VPN
UserGet 34
但是当它尝试在php中使用exec或shell_exec执行此操作时

<?php

$x = exec('cd /usr/local/vpnserver/;./vpncmd;1;;;Hub VPN;UserGet 34'); 
echo $x;

?>

它对我不起作用,因为在./vpncmd之后,它会询问选择1 2 3的问题
我必须输入1,然后再次输入2,然后我到达我的位置连接到vpn集线器,并可以查看我的vpn用户详细信息

但我不能在php中实现这一点。
它将如何在php中工作

只能用于分隔命令,它不适用于命令的输入。如果要为命令提供输入,请使用here文档

$x = exec('cd /usr/local/vpnserver/;./vpncmd <<EOF
1


Hub VPN
UserGet 34
EOF'); 

$x=exec('cd/usr/local/vpnserver/;。/vpncmd我不知道here doc及其工作原理如何使用here doc请您解释一下,确保最后一行的
EOF
前面没有空格。另外,我假设
vpncmd
从标准输入读取,而不是直接从终端读取。