Maison > Article > développement back-end > Compréhension approfondie de la couleur et du contrôle de sortie Shell
Avant-propos
Tout le monde sait que lorsque vous utilisez la commande ls pour lister des fichiers, différents types de fichiers seront affichés dans différentes couleurs. Alors, comment obtenir une sortie de texte aussi colorée ? La réponse n’est pas compliquée, que ce soit en utilisant le shell ou le langage C.
1. Méthode d'implémentation sous shell
Parlons d'abord de la façon de l'implémenter sous shell. Ceci peut être réalisé avec la commande echo. Voir l'exemple suivant :
echo -e "33[32mHello, world!"
Lorsque vous tapez cette commande dans le terminal, constatez-vous que le système affiche "Bonjour tout le monde". en vert ? !", non seulement cela, mais aussi l'invite de commande suivante est devenue verte ? Ne vous inquiétez pas, écoutez-moi. L'option -e de la commande echo active l'interprétation par le terminal du caractère d'échappement barre oblique inverse (ie). 33 entre guillemets est utilisé pour guider les séquences de caractères non conventionnelles. La fonction ici est de guider le réglage des attributs de sortie. Le [32m suivant consiste à définir la couleur de premier plan sur le vert. La lettre m représente la catégorie d'attribut définie et le nombre représente. la valeur de l'attribut. Les paramètres
peuvent être utilisés individuellement, par exemple :
echo -e "33[0m"
La fonction de cette ligne de commande est de restaurer les attributs à leurs valeurs par défaut, c'est à dire de par exemple, l'élément de réglage 0m est utilisé pour restaurer la valeur par défaut. Est-ce que tout fonctionne correctement sur votre terminal maintenant ?
Après avoir compris cela, le reste est facile. Avec cette commande, en plus de définir la couleur de premier plan du texte, vous pouvez également définir de nombreuses propriétés.
D'autres paramètres sont répertoriés ci-dessous :
33[0m 关闭所有属性 33[1m 设置高亮度 33[4m 下划线 33[5m 闪烁 33[7m 反显 33[8m 消隐 33[30m 至 33[37m 设置前景色 33[40m 至 33[47m 设置背景色 33[nA 光标上移n行 33[nB 光标下移n行 33[nC 光标右移n行 33[nD 光标左移n行 33[y;xH设置光标位置 33[2J 清屏 33[K 清除从光标到行尾的内容 33[s 保存光标位置 33[u 恢复光标位置 33[?25l 隐藏光标 33[?25h 显示光标
Les couleurs représentées par chaque numéro sont les suivantes :
mots Gamme de couleurs de fond : 40----49
40 : Noir
41 : Rouge foncé
42 : Vert
43 : Jaune
44 : Bleu
45 : Violet
46 : Vert foncé
47 : Blanc
Couleur du personnage : 30-----------39
30 : Noir
31 : Rouge
32 : Vert
33 : Jaune
34 : Bleu
35 : Violet
36 : Vert foncé
37 : Blanc
De plus, plusieurs éléments de réglage du même type peuvent être combinés avec un point-virgule au milieu ( ;) séparé.
est la suivante :
echo -e "33[20;1H33[1;4;32mHello,world33[0m"
Cette ligne de commande d'abord 33[20;1H déplace le curseur vers la 20ème ligne et la 1ère colonne du terminal, et then 33[1; 4;32m Définissez les propriétés du texte sur surbrillance, souligné et vert, puis affichez Hello, world; Enfin 33[0m restaurez les propriétés du terminal à leurs valeurs par défaut, afin que vous ne voyiez pas l'invite de commande après le la commande est terminée. Elle a également changé.
Un contrôle complexe de la sortie du terminal peut être obtenu grâce à la combinaison des commandes ci-dessus.
2. Comment l'implémenter en programmation C ?
Après avoir compris la méthode d'implémentation ci-dessus dans Shell, il est très simple de l'implémenter en C. On peut dire qu'il vous suffit d'utiliser la fonction printf pour remplacer le echo -e ci-dessus. Voir l'exemple suivant :
int color = 32; printf("33[20;1H33[1;4;%dmHello, world.33[0m", color);
Cet exemple est similaire au dernier exemple de. le shell ci-dessus, sauf que la valeur de couleur est passée ici. La variable color est spécifiée (bien sûr, elle peut également être spécifiée directement).
3. Lenovo
En voyant cela, vous vous demandez peut-être si des méthodes similaires peuvent être utilisées pour contrôler la sortie du terminal dans d'autres langages de programmation ? La réponse est oui ! Par exemple, en python, le résultat peut être le suivant :
color=32 print “33[20;1H33[1;4;%dHello, world.33[0m"%color
L'effet de cet exemple est le même que celui de l'exemple C ci-dessus.
Résumé
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article pourra apporter de l'aide aux études ou au travail de chacun. peut laisser un message pour communiquer.
Pour une compréhension plus approfondie des articles relatifs à la couleur et au contrôle de sortie Shell, veuillez prêter attention au site Web PHP chinois !