Immer wenn ich grep
verwende, und ich es zu einem anderen Programm pipe, wird die --color
Option nicht respektiert. Ich weiß, dass ich --color=always
verwenden könnte, aber es kommt auch mit einigen anderen Befehlen, die ich die genaue Ausgabe dieses Befehls erhalten möchte, als die Ausgabe, die ich erhalten würde, wenn ich in einem tty war.Tun Sie so, als wäre es ein TYY in Bash für irgendeinen Befehl
Also meine Frage ist, ist es möglich, einen Befehl zu glauben, dass der Befehl in einem tty ausgeführt wird?
Zum Beispiel so etwas wie
grep --color word file # Outputs some colors
grep --color word file | cat # Doesn't output any colors
Ich möchte in der Lage sein, läuft zu schreiben:
IS_TTY=TRUE grep --color word file | cat # Outputs some colors
This question scheint ein Werkzeug zu haben, das könnte das tun, was ich will: empty - run processes and applications under pseudo-terminal (PTY), aber von dem, was ich in den Dokumenten lesen konnte, bin ich nicht sicher, dass es für mein Problem helfen kann
Sie erkennen, dass '--color' den tatsächlichen Datenstrom ändert, der an den Befehl weiter unten in der Pipeline gesendet wird? Die Folge wäre, anderen vernünftigen Code zu brechen, weil 'searchTarget' nicht'^[32; 4gsearchTarget^[32; h' (oder ähnlich) ist. Viel Glück. – shellter
Ja, ich weiß, dass ich in meinen Skripten diese Technik niemals verwenden werde, um Greps zu färben, aber einige Befehle, die ich benutze, scheinen etwas anderes auszugeben, wenn sie außerhalb eines TY verwendet werden (zum Beispiel 'ag', der Silversearcher, aber auch Mocha,. ..) und ich habe keine Zeit, alle Optionen zu lernen, um mit dem gleichen Format zu drucken, wenn ich diese Befehle in andere pipe) – edi9999
Hmmm .. Ich denke, das ist mit einigen überraschenden Antworten (mir) zuvor gekommen. Hast du viel nach '[linux] (oder) [bash] --color' gesucht? Viel Glück. – shellter