我正在編寫一個非常簡單的「here」shell文檔,它提供了一個java類。下面是Java代碼「here」調用java類的shell腳本
public class input {
public static void main(String[] args)
{
try {
do {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.print("cmd>");
String s = br.readLine();
if (s != null) {
System.out.println("cmd=" + s);
if (s.equals("quit")) return;
}
} while (true);
}
catch(Exception e) {
}
}
}
它只是讀取輸入和呼應回來:)
在文件「readinput」我必須調用上述
java input
的Java類線
這裏是shell腳本來調用具有參數的上述「readinput」一個接一個地
#!/bin/sh
./readinput << EOF1
aaaaaaaaaa
bbbbbbbb
quit
EOF1
當我運行這個shell腳本時,第一行「aaaaaaaaa」被正確回顯,然後腳本進入無限循環。看起來像java類一直讀取空字符串。
什麼可能導致此行爲?
你可能想要設置你在閱讀循環之外閱讀。 – 2014-02-14 06:31:21
換句話說,'new'東西應該放在'do'之前。 – tripleee
是的,我已經測試過這種變化,它工作正常,但忽略了一段時間的代碼效率,是什麼導致了Java中的這種特殊行爲? – user3309054