我在/ home / pi / mydir中有脚本我想要执行所以我需要做的第一件事就是
$ssh->exec('cd mydir');
然后
$ssh->exec('./script');
但它没有用,所以有人可以帮助我吗?
答案 0 :(得分:4)
cd /path/to/directory && your command
我的临时解决方案!
答案 1 :(得分:4)
使用\ n:
$ssh->exec("cd mydir\n./script");
或创建文件script.sh
(示例)并以UNIX格式保存:
cd mydir
./script
并执行此脚本:
$script = file_get_contents("script.sh");
$ssh->exec($script);
答案 2 :(得分:2)
这是exec()工作方式的基本限制。 exec()有点像...你打开PuTTY,输入cd mydir
,重新启动PuTTY,然后输入./script
。你不会期望" ./ script"在" mydir"中运行如果你做了这一切。然而,这几乎就是exec()的作用。
在这种情况下,它不是一个phpseclib问题 - 它更像是一个SSH问题。 exec(),正如SSH规范所定义的那样,并不支持它。
更多信息:
http://phpseclib.sourceforge.net/ssh/examples.html#chdir
我的建议:要么使用绝对路径要么使用read()/ write()。
祝你好运!