gpt4 book ai didi

java - 使用 JSch 执行源命令

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:45 27 4
gpt4 key购买 nike

我有两个脚本,我想在服务器上执行。问题是,第一个脚本设置了一些环境变量,并且必须通过

执行
. script1.ksh

而第二个可以通过执行

script2.ksh

现在,如果我给 Jsch 执行以下字符串

cd work_dir && . script1.ksh && ./script2.ksh

它告诉我找不到 script1.ksh如果我尝试一下

cd work_dir && ./script1.ksh && ./script2.ksh

当然script2中的变量没有定义。

有没有办法在 JSch 中执行这样的命令?

最佳答案

这篇文章的最后一个答案成功了:

Multiple commands through Jsch Shell

    JSch jsch = new JSch();
Session session = jsch.getSession(scpInfo.getUsername(), scpInfo.getIP(), scpInfo.getPort());
session.setPassword(scpInfo.getPassword());
setUpHostKey(session);
session.connect();

Channel channel=session.openChannel("shell");//only shell
channel.setOutputStream(System.out);
PrintStream shellStream = new PrintStream(channel.getOutputStream()); // printStream for convenience
channel.connect();
for(String command: commands) {
shellStream.println(command);
shellStream.flush();
}

Thread.sleep(5000);

channel.disconnect();
session.disconnect();

在断开连接之前 sleep 非常重要

关于java - 使用 JSch 执行源命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40849061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com