0
我在包含不在默認路徑上的命令的服務器上有bash腳本。通過JSch執行腳本時將目錄添加到PATH CommandExec
如果我使用終端ssh到服務器並執行腳本,它會正常工作(因爲命令所在的目錄將添加到路徑中)。但是,如果我嘗試通過JSch的CommandExec執行命令,我得到了一個「command not found」錯誤。
有沒有辦法在通過JSch執行腳本時將其他目錄添加到路徑中?
請注意,我無法修改服務器上的腳本。它必須按原樣運行。
myscript.sh
...
mycommand
...
JSch代碼:
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.connect();
ChannelExec channelExec = (ChannelExec)session.openChannel("exec");
channelExec.setCommand("/path/to/myscript.sh");
channelExec.connect();
謝謝
不幸的是,正如我在我的問題中指出的那樣,我無法修改腳本。 – Ares
你可以在'JSch'中做這樣的事嗎? 1.加載myscript.sh 2.在緩衝區中修改'command'到'/ path/to/command'。 3.然後執行'channelExec.setCommand(modified_buffer);' – sjsam