1. Java使用JSch,ChannelExec取不到结果,在while(true)中死循环。ChannelShell结果难处理,求指点
1、无法执行多条命令,每次ChannelExec在connect前要先setCommand,最后一次的设置生效。
2、由于第一个原因的限制,如果执行的命令需要环境变量(如JAVA_HOME),就没有办法了。这种方式执行基本的ls,ps之类的命令没有问题,需要复杂的环境变量时有点力不从心。
2. 如何运行并显示shell命令的ssh与JSch的结果
1. 在ssh shell中运行脚本,比如我运行一个批量下载脚本: python download-app-annie.py2. 按下ctrl-z中断脚本运行,此时系统提示:^Z[1]+ Stopped python download-app-annie.py意思是编号为1的任务挂起了,[1]就是任务的编号,里面的数字也可能是2,3,4..3. 输入命令:bg 1这个命令将1号任务切换到后台执行4. 输入命令:disown -h %1这个命令的意思是将1号任务从当前shell的任务列表中移除,并且忽略HUP信号,这样,即使当前Shell结束了,这个任务也不会被结束,而是继续留在后台执行。