Ich habe ein Bash-Skript auf einem Server, der einen Befehl enthält, der nicht auf dem Standardpfad ist.Hinzufügen von Verzeichnis zu PATH beim Ausführen von Skript über JSch CommandExec
Wenn ich ein Terminal verwenden, um SSH an den Server und das Skript auszuführen, funktioniert es gut (weil das Verzeichnis, in dem sich der Befehl befindet, dem Pfad hinzugefügt wird). Wenn ich jedoch versuche, den Befehl über JSchs CommandExec auszuführen, habe ich den Fehler "Befehl nicht gefunden" erhalten.
Gibt es trotzdem, das zusätzliche Verzeichnis zum Pfad hinzuzufügen, wenn das Skript über JSch ausgeführt wird?
Beachten Sie, dass ich das Skript auf dem Server nicht ändern kann. Es muss so laufen wie es ist.
myscript.sh
...
mycommand
...
JSch Code:
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();
Danke
Leider, wie ich in meinen Fragen bemerkte, kann ich das Skript nicht ändern. – Ares
Kannst du so etwas in 'JSch' machen? 1. lade myscript.sh 2. Im Puffer modifiziere 'command' in'/path/to/command'. 3. Dann tun Sie 'channelExec.setCommand (modified_buffer);' – sjsam