Lorsque j'exécute une commande comme celle-ci:
# systemctl status plexmediaserver
J'obtiens une sortie joliment colorée. Mais lorsque j'exécute la commande suivante:
# watch -n300 --color systemctl status plexmediaserver
Existe-t-il un moyen de faire cette watch
commande avec la couleur de systemctl
? J'ai regardé la page de manuel systemctl
mais je ne vois aucune référence à la couleur nulle part.
Réponses:
man systemd
ditc'est-à-dire que vous pouvez forcer le mode couleur avec cela.
la source
SYSTEMD_COLORS
plus que son nom ne le suggère, car la prise en charge des liens cliquables à la mi-2018 a été introduite, jonçant la sortie avec des codes d'échappement et des URL urlifiées - qui, heureusement, peuvent être désactivéesSYSTEMD_URLIFY=0
systemctl
ne semble pas avoir de mécanisme pour spécifier quand colorer la sortie. Une solution rapide serait de calerisatty(3)
pour toujours retourner vrai, donc trompersystemctl
en pensant que la sortie standard est interactive. À savoir, vous pourriez faire:Le
-xc -
à la fin de lagcc
commande indiquegcc
de compiler le code C (-xc
) à partir de stdin (-
). Les autres indicateurs indiquentgcc
de créer un fichier d'objet partagé nomméisatty.so
. Notez que cela pourrait très bien casser d'autres programmes qui comptentisatty
pour renvoyer une valeur légitime. Elle semble cependant convenirsystemctl
car elleisatty
semble être uniquement utilisée dans le but de déterminer si elle doit colorer sa sortie.la source
Basé sur la réponse de @ KarlC , voici un script qui génère puis inclut la bibliothèque au moment de l'exécution:
la source