1

是否有类似于 PHP 的 GET 用于 bash 脚本的方法?

这就是我正在尝试做的...

PHP 文件设置一个变量并执行远程 bash 脚本,该变量被传递并在 bash 脚本中使用。

所以这是我的PHP脚本......

 <?php
 $myvar = 'hello world';

 $connection = ssh2_connect('example.com', 22);
 ssh2_auth_password($connection, 'username', 'password');

 $stream = ssh2_exec($connection, '/usr/incoming/myscript.sh');
 ?>

这是远程机器上的 myscript.sh ......

 #!/bin/bash          
 echo $myvar

当然这不起作用,因为我不确定如何将 $myvar 从 PHP 文件传递​​到 myscript.sh

我知道使用 PHP 这是使用 GET 完成的,但在这种情况下我该怎么做呢?

4

3 回答 3

2

我最近发布了一个项目,它允许 PHP 获取并与真正的 Bash shell 交互,甚至通过 SSH。在这里获取:https ://github.com/merlinthemagic/MTS

下载后,您只需使用以下代码:

$shell = \MTS\Factories::getDevices()->getRemoteHost('example.com')->getShellBySsh('username', 'secretPassword');

//instead of triggering a script, just trigger the individual commands i.e.:
$return1  = $shell->exeCmd("echo \$myvar");
于 2016-05-23T12:28:23.337 回答
-1

正如@Phylogenesis 评论的那样,您只想将变量放在脚本调用之后,然后在bash脚本中调用$1以读取var:

https://eval.in/439053

$stream = "/usr/incoming/myscript.sh " . escapeshellarg($myvar);

您的 bash 脚本如下所示:

#!/bin/bash          
 echo "$1"
于 2015-09-24T15:59:46.420 回答
-1

脚本.php

 <?php
 $myvar = 'hello world';
 $myvar = escapeshellarg($myvar);
 $connection = ssh2_connect('example.com', 22);
 ssh2_auth_password($connection, 'username', 'password');
 $stream = ssh2_exec($connection, '/usr/incoming/myscript.sh '.$myvar);

脚本文件

#!/bin/bash          
echo $1
于 2015-09-24T16:01:53.157 回答