"echo $ Path"コマンドを含むbachスクリプトを実行すると、javaで実行されたときに出力される内容と、コマンド行から実行するときに出力される内容が異なります。私のスクリプトの他のコマンドにも影響します。なぜこれが起こっているのですか、どうすれば避けられますか?続き
は、スクリプトがbashscriptに "エコーの$ PATH" が含まれているとき、私はコマンドライン出力から実行したときに
出力は
/usr/bin:/bin:/usr/sbin:/sbin
である。しかしbashscript
public static String executeCommands(File tempScript, Boolean deleteFile)
throws IOException, InterruptedException {
StringBuffer output = new StringBuffer();
try {
ProcessBuilder pb = new ProcessBuilder("bash", tempScript.toString());
pb.inheritIO();
Process process = pb.start();
process.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
}
return line;
} finally {
if (deleteFile == true)
tempScript.delete();
}
}
を実行するために私の関数でありますis
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/scala/scala-2.11.8/bin:/Users/<user>/Installations/activator-dist-1.3.10
'-l'で' bash'を呼び出します。 –
それは彼らが働くことになっている方法です。期待されることです。また、ルートとして実行を停止する、それに落ちる悪い習慣です。 – sorontar
私はこのテストを単体テストから実行していました。私は単体テストから単体テストを実行しました。なぜそれが根の下で動いていたと思いますか? – raju