J'ai modifié la valeur par défaut/etc/update-motd.d/00-header
, en ajoutant de la couleur pour en faciliter la lecture:
printf "Welcome to \e[1;34m%s\e[0m \e[2m(%s %s %s)\e[0m\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)"
Je peux très bien exécuter cette ligne de code dans un terminal, mais lorsque je modifie 00-header
avec ces informations, je reçois les codes d'échappement imprimés en clair:
Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m
Comment puis-je ajouter une touche de couleur au message du jour?
pico
j'ai remplacé la ligne de code existante par la première ligne de code que j'ai incluse dans mon exemple. Le problème est que l'analyseur MOTD a ensuite traité les caractères\e
et suivants comme du texte brut plutôt que comme des caractères spéciaux.Réponses:
En supposant que vous êtes sur Ubuntu - qui utilise dash pour exécuter des scripts système:
Ce fichier
/etc/update-motd.d/00-header
,, est exécuté par/bin/dash
, (non/bin/bash
,) qui est assez minimaliste (et rapide) -il semble ne pas supporter le "\ e" à cet endroit - utilisez plutôt "\ 033" .
Il est différent de développer des codes d'échappement.
la source
Sur Debian / Ubuntu, le
motd
est configuré dans/etc/pam.d/sshd
:ce qui signifie qu'en cas de connexion réussie, le système exécutera quelque chose comme:
où
/etc/motd
est la partie statique (uniquement imprimée, non source).Debian 9 / Ubuntu 16.04 :
Pour générer la partie dynamique
run-parts
est utilisée pour le/etc/update-motd.d
répertoire:Pour un code légèrement plus lisible, vous pouvez utiliser
tput setaf {color number}
. Notez que pour conserver les couleurs, nous devons définir uneTERM
variable.enregistrer le fichier comme par exemple
/etc/update-motd.d/10-uname
et assurez-vous qu'il est exécutable:
Les couleurs de base sont numérotées:
Le code ci-dessus génère:
Selon vos goûts, vous pouvez produire une sortie plus colorée à l'aide de
lolcat
ou de rubriquesfiglet
. La sortie générée utilise la syntaxe bash standard:Debian 8 / Ubuntu 14.04
La partie dynamique est mise à jour à l'aide de ce
/etc/init.d/motd start
qui s'exécute comme suit:la source