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結束了,這個任務也不會被結束,而是繼續留在後台執行。