2017-01-02 3 views
-6

Wie führe ich Shell-Skript-Datei mit einem Eingabeparameter wie "./flows.sh suspend" und drucken Sie das Ergebnis in eine Datei mit Java in Linux?Wie führe ich Shell-Skript mit Java

+1

_ "bitte antworten Sie den gesamten Code, wenn möglich" _ - dies wird garantiert zu downvotes ziehen und Ihre Frage geschlossen. StackOverflow ist keine "gib mir die Codez" -Website und fragt nach Code, ohne irgendwelche Anstrengungen zu zeigen, wird als unhöflich und unorthodox angesehen. –

Antwort

1

Dies ist ein einfacher Code, um den Shell-Skript und liest seine Ausgabe auszuführen:

import java.io.*;                

public class Test {               
    public static void main(String[] args) throws Exception {     
    String[] command = { "./flows.sh", "suspend" };   
    Process process = Runtime.getRuntime().exec(command);      
    BufferedReader reader = new BufferedReader(new InputStreamReader( 
     process.getInputStream()));           
    String s;                 
    while ((s = reader.readLine()) != null) {         
     System.out.println("Script output: " + s); // Replace this line with the code to print the result to file      
    }                   
    }                   
}  

Um es in eine Datei zu drucken, ersetzen Sie einfach die System.out.printin für den Code in eine Datei zu schreiben

+0

Es ist .... etwas komplexer als das. Zunächst einmal, worauf bezieht sich ". /" Und wo kommt die Schale dazu? –

+1

@JimGarrison '. /' Bezieht sich auf das aktuelle Verzeichnis und muss die PATH-Suche unterdrücken. Die Shell, die das Skript interpretiert, wird vom Kernel basierend auf dem Shebang des Skripts erzeugt. Es gibt nicht mehr als das, und es kann noch einfacher mit ProcessBuilder getan werden, um eine Umleitung direkt auf die Datei einzurichten. –

+0

@JimGarrison Das ist eine andere Frage ... Ich habe nur eine funktionierende Lösung für die Ausführung eines Shell-Skripts aus Java erstellt und die Ausgabe erhalten, weil ich es als das Hauptproblem betrachtete – xBlackout

Verwandte Themen