phpseclib-SSH2 -> 使用 exec 命令创建一个环境变量
phpseclib-SSH2 -> Create an environment variable with the exec-command
我正在开发一个 PHP 应用程序,我可以使用它通过 phpseclib 的 SSH2 连接到 RaspberryPI (运行 Linux)。
连接到设备并通过 "ls"- order "pwd"- 命令获取信息工作正常。
但现在我正在尝试在设备上创建一个新的环境变量 - 比方说 TEST_VAR - 但这似乎不起作用。
按照我的 php-代码来尝试:
$ssh = new Net_SSH2($host, $port, 10);
if (!$ssh->login($user, $pass)) {
exit("Login Failed");
}
// Test->Show the working directory
echo $ssh->exec("pwd");
// Create an environment variable "TEST_VAR" with the value "Test"
echo $ssh->exec("export TEST_VAR=Test");
// Give the content of the above created variable out
echo $ssh->exec("echo $TEST_VAR");
变量的创建不起作用
我不知道为什么 - 因为没有错误。
phpseclib 甚至可以做到这一点吗?
如果有任何帮助和提示,我将不胜感激。
问候
西蒙
$ssh->exec
不保留状态。因此,类似地,您不能执行 $ssh->exec('cd /some/random/path'); echo $ssh->exec('pwd')
并期望它输出 /some/random/path
.
你有几个选择。
链接命令。例如。 $ssh->exec("pwd; export TEST_VAR=Test; echo $TEST_VAR");
使用交互模式。例如。 $ssh->read('[prompt]'); $ssh->write("pwd\n"); $ssh->read('[prompt]'); $ssh->write("export TEST_VAR=Test\n");
将您想要 运行 的所有命令放入 shell 脚本,然后 运行 shell 脚本。
更多信息:
我正在开发一个 PHP 应用程序,我可以使用它通过 phpseclib 的 SSH2 连接到 RaspberryPI (运行 Linux)。 连接到设备并通过 "ls"- order "pwd"- 命令获取信息工作正常。
但现在我正在尝试在设备上创建一个新的环境变量 - 比方说 TEST_VAR - 但这似乎不起作用。
按照我的 php-代码来尝试:
$ssh = new Net_SSH2($host, $port, 10);
if (!$ssh->login($user, $pass)) {
exit("Login Failed");
}
// Test->Show the working directory
echo $ssh->exec("pwd");
// Create an environment variable "TEST_VAR" with the value "Test"
echo $ssh->exec("export TEST_VAR=Test");
// Give the content of the above created variable out
echo $ssh->exec("echo $TEST_VAR");
变量的创建不起作用 我不知道为什么 - 因为没有错误。 phpseclib 甚至可以做到这一点吗?
如果有任何帮助和提示,我将不胜感激。
问候 西蒙
$ssh->exec
不保留状态。因此,类似地,您不能执行 $ssh->exec('cd /some/random/path'); echo $ssh->exec('pwd')
并期望它输出 /some/random/path
.
你有几个选择。
链接命令。例如。
$ssh->exec("pwd; export TEST_VAR=Test; echo $TEST_VAR");
使用交互模式。例如。
$ssh->read('[prompt]'); $ssh->write("pwd\n"); $ssh->read('[prompt]'); $ssh->write("export TEST_VAR=Test\n");
将您想要 运行 的所有命令放入 shell 脚本,然后 运行 shell 脚本。
更多信息: