Gibt es einen Linux-Befehl, mit dem ich das Ergebnis eines anderen Befehls farbcodieren kann?
1209
STW
Ich führe watcheinen Befehl aus, um die Anzahl der offenen Verbindungen für einen Dienst zu überwachen, den wir diagnostizieren. Ich muss das während der anderen Arbeit im Auge behalten, damit andere Entwickler erkennen können, wann der Dienst funktioniert.
Das Ergebnis der Uhr ist eine Zahl zwischen 1 und 5000. Ich möchte die Zahl grün anzeigen, wenn sie unter 500 liegt, gelb, wenn sie zwischen 501 und 4000 liegt, und rot für über 4000.
Gibt es einen Befehl, mit dem die Farbe auf Grundlage des Werts meines Befehls leicht festgelegt werden kann?
Ich kenne mich mit linux nicht aus. "Watch" - bedeutet, dass im Terminal std angezeigt wird?
Maximus vor 12 Jahren
0
@ Maximus Dies ist ein Linux-Dienstprogramm, das wiederholt einen Befehl ausführt und die Ausgabe in einem Terminal in einem bestimmten Intervall anzeigt. "watch -n 1 ps aux" - Zum Beispiel der Prozessmonitor eines armen Mannes (führen Sie "ps aux" aus, um die Prozesse alle 1 Sekunde aufzulisten und die Ergebnisse zu drucken).
Darth Android vor 12 Jahren
1
Ich sage Ihnen nur: Es gibt colordiff für all diese unangenehmen diff-Befehle. Z.B. svn diff | colordiff -> woho!
Valentin vor 12 Jahren
0
Auf Debian-basierten Systemen können Sie es einfach über installieren
sudo apt-get install ccze
Verwendungszweck
Verwenden Sie es so:
tail -f /var/log/syslog | ccze
Plugins
Wenn das Standardfarbverhalten cczenicht Ihren Vorstellungen entspricht, können Sie die Funktionalität durch Plugins erweitern. Leider habe ich noch nie geschrieben, da ich mit dem Standardverhalten gut bedient werde. Ich kann Sie also nur auf die ccze-pluginManpage verweisen .
3
fmanco
Ich habe dieses kleine Skript geschrieben, das ich color genannt habe:
#!/bin/bash result=$($@) GREEN="1;32m" YELLOW="1;33m" RED="1;31m" if [ "$result" -lt "500" ] then echo -e "\033[$GREEN $result \033[0m" ; elif [ "$result" -ge "500" -a "$result" -le "4000" ] then echo -e "\033[$YELLOW $result \033[0m" ; else echo -e "\033[$RED $result \033[0m" ; fi
Sie können jetzt ausführen:
watch --color ./color <your command here>
Stellen Sie sicher, dass Ihr Befehl nur eine Zahl ausgibt. Ansonsten müssen Sie die Ausgabe korrekt behandeln und sie der resultVariablen zuweisen .
1
wizlog
Ich denke, Sie können die Manpages jedoch farblich hervorheben (nachdem Sie mehrere Google- Suchanfragen ausgeführt haben, glaube ich nicht, wonach Sie suchen.)
1
ott--
You could use tput to to put some color in your life. Examples are
tput setf 3 # textcolor green tput setf 6 # red tput sgr0 # back to normal echo "$(tput setf 6)$line$(tput setf sgr0)"