我想從運行Java代碼的shell腳本從Java代碼運行shell腳本:語法錯誤: 「(」 意外
Shell腳本:
function print() {
echo "First Script"
}
print
echo "Hello"
Java代碼:
final String cmd = "sh test.sh";
final Process p = Runtime.getRuntime().exec(cmd);
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
is = p.getErrorStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
System.out.println(line);
}
但是當我運行上面的代碼中,我得到這個錯誤test.sh: 1: Syntax error: "(" unexpected
。
相同的代碼工作正常時,我嘗試了一個命令行,我能夠看到輸出。我也試過dos2unix
並運行java代碼,但仍然沒有運氣。任何形式的幫助將非常感激。
腳本中的shebang在哪裏? – Anders
@Anders:將腳本傳遞給'sh'作爲參數時,shebang被忽略。 –
@larsmans Yupp我知道,我只是讀了這個問題馬虎。 – Anders