
Ich habe ein Problem mit dem Bash-Terminal.
Mein Problem mit Details:
Und ja, ich bin mir bewusst, dass man es manuell machen kann. Aber es wäre nervig, wenn jeder Benutzer das manuell machen müsste. Ich habe es auch mit „echo“ probiert, aber das hat nicht so funktioniert, wie ich es wollte.
Ich wäre auch froh, wenn Sie mir sagen könnten, wie man eine Bash-Datei mit Java ausführt. (Das kriege ich aber auch selbst hin.)
Grundsätzlich eine Farbe 0a für das Linux-Bash-Terminal.
Wenn möglich, ohne dass dafür eine spezielle Software nötig wäre.
Vielleicht würde das helfen. Ich kann es allerdings nicht ausführen.
PS1="\[\033[34m\][\$(date +%H%M)][\u@\h:\w]$ "
Ich kann mit "exec"-Befehlen im Terminal ausführen. Die Befehle für Farbe usw. funktionieren jedoch nicht, weder nach einem Ping noch vor einem Ping-Befehl. Vielen Dank für Ihre Antwort!
Antwort1
Die Lösung für mein Problem ist:
public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_BLACK = "\u001B[30m";
public static final String ANSI_RED = "\u001B[31m";
public static final String ANSI_GREEN = "\u001B[32m";
public static final String ANSI_YELLOW = "\u001B[33m";
public static final String ANSI_BLUE = "\u001B[34m";
public static final String ANSI_PURPLE = "\u001B[35m";
public static final String ANSI_CYAN = "\u001B[36m";
public static final String ANSI_WHITE = "\u001B[37m";
https://stackoverflow.com/questions/5923436/change-color-of-java-console-output
Zuerst deklarieren Sie die Farbe oben. Dann schreiben Sie:
System.out.println(ANSI_RED + "hello World");
Dann führen Sie Ihr Programm aus und alles ist gut.
Ursprünglich aus: https://stackoverflow.com/questions/5923436/change-color-of-java-console-output
Prost.
Antwort2
Sie können ein Shell-Skript ganz einfach über Java ausführen:
Runtime.getRuntime().exec(myCommand);
Dies funktioniert, solange das Shell-Skript nicht interaktiv ist (und sich in einem anwendbaren Pfad befindet). Wenn es interaktiv ist, wird es merkwürdig, und dafür müssen Sie Process Builder verwenden.
Antwort3
Ich glaube, das sollte funktionieren (Sie müssen auch die Escape-Sequenzen escapen, damit sie ausgeführt werden und Java sie nicht erweitert):
p = Runtime.getRuntime().exec("/bin/bash -c 'echo -ne \"\\e[40m\\e[32m\"; ping " + b + "; echo -ne \"\\e[0m\"'");