Передача переменной PHP в удаленный скрипт bash

Есть ли метод, похожий на 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, но как мне это сделать в этой ситуации?

1

Решение

Как прокомментировал @Phylogenesis, вы хотите просто поместить переменные после вызова сценария, а затем вызвать использование сценария bash $1 читать вар:

https://eval.in/439053

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

Ваш скрипт bash будет выглядеть так:

#!/bin/bash
echo "$1"
-1

Другие решения

Недавно я опубликовал проект, который позволяет PHP получать и взаимодействовать с реальной оболочкой Bash, даже через 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");
2

script.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);

myscript.sh

#!/bin/bash
echo $1
-1
По вопросам рекламы [email protected]