我想在 jsch的ChannelExec
(not ) 中运行远程命令。ChannelShell
显然没有加载环境变量,但我的命令需要它们:
_channel.setCommand("source /etc/bash.bashrc; source ~/.bashrc; echo $LD_LIBRARY_PATH");
_channel.connect();
什么都不返回,尽管LD_LIBRARY_PATH
在我的~/.bashrc
.
_channel.setEnv("LD_LIBRARY_PATH", "/my/add/path:$LD_LIBRARY_PATH");
_channel.setCommand("echo $LD_LIBRARY_PATH");
_channel.connect();
也不起作用 - 仍然没有echo
命令输出。
知道有什么问题吗?我什么时候必须打电话setEnv
?在我做之前connect()
还是之后?为什么隐式解决方案source
不起作用?