2016-04-01 11 views
0

In einem Bash-Skript muss ich etwas Text in Farben ausdrucken.Zugriff auf Terminal-Emulator Farben in einem Bash-Skript

Ich möchte jedoch keine festen Farben angeben, ich möchte diejenigen verwenden, die vom Terminal (/ - Emulator) angegeben werden.

Wie kann ich programmgesteuert auf sie zugreifen? Normalerweise müssen diese 16 Farben enthalten. Zwei von ihnen müssen als Hintergrund und Vordergrund bezeichnet werden.

Es sollte eine Möglichkeit geben, dies zu tun, da andere Programme wie Fisch, Emacs usw. ebenfalls in den im Terminal-Emulator angegebenen Farben erscheinen.

Jede Beratung sehr geschätzt wird ..

+1

Siehe http://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux – Guido

+1

Sie denken wahrscheinlich an 'tput'. Hier ist eine gute [Dokumentation] (http://linuxcommand.org/lc3_adv_tput.php) mit der Sie beginnen können. – alvits

+0

Danke! das ist schon eine große Hilfe. Ich könnte jetzt die nummerierten Farben über tput (von 0-15) erfassen, aber was ist mit den beiden anderen: "Vordergrund" und "Hintergrund", sie sind auch im Thema meines Terminal-Emulators angegeben. –

Antwort

0

eine Datei Farbprofil Machen profile wie unten

export RED='\033[0;31m' 
export GREEN='\033[1;32m' 
export WHITE='\033[1;37m' 

die obige Datei in Ihrem Skript und die Farbe ändert printf nach Bedarf verwenden.

#!/bin/bash 
source $(dirname $0)/profile 

#Switching to RED 

printf "${RED}" 
ls 

#Switching to GREEN 

printf "${GREEN}" 
echo "Current working directory is "`pwd` 
echo "/etc/passwd contents" 
cat /etc/passwd 

#Switching back to white 

printf "${WHITE}" 

echo "Some white stuff" 

Die Farben bleiben bestehen, bis wir sie ändern.

Verwandte Themen