Coloration du texte dans le shell

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Coloration du texte dans le shell

par Berzemus » 15 oct. 2007, 14:44

finalement, j'ai opté pour "command line". :wink:

Alors, progression de la recherche:

J'ai trouvé plusieurs outils qui permettent la coloration de texte dans le command line:
Swiss file knife, qui permet plein d'autres chôses et cecho.

Mais php perds la couleur en route (même avec passthru() )

Ceci en plus de la simple commande "Color", qui marche plutôt bien, mais que je ne parviens pas à exécuter dans le cadre de php.



Du temps du dos, il y avait moyen de déterminer la couleur avec une suite de caractères précédent une chaine, mais ce n'est plus possible avec le command line.

Apparament, il serait possible de définir les couleurs en C avec l'api win32, mais rien ne semble prévu à cet effet sous php..

Donc je conclus sur une limitation de php/cli, pour le moment.. y'a sans doute un moyen.. mais j'ai pas encore trouvé le taré qui l'a pousé si loin..

par Calimero » 15 oct. 2007, 12:09

c'est bien le problème, il a des tas de noms ce truc.. prompt, shell, batch, command.. pfrrt.. sous dos c'était possible, mais même si c'est ressemblant, je ne trouve pas de solution pour le shell xp..

ce serait quand même bête de passer sous cygwin juste pour avoir une coloration de texte..
Non ;-) Car cygwin vient avec un paquet de choses bien pratiques. Il m'avait aussi aidé à débusquer un méchant virus qui parvenait à se cacher de CMD.

Bref, si tu veux du terminal de qualité, il faut aller le chercher là ou il est. CMD est vraiment le service minimum en matière de terminal.

Petit point de vocabulaire aussi, pour tes recherches : il me semble également que l'appellation "shell" sous windows fait référence à des éléments graphiques (en rapport avec le menu contextuel si je ne m'abuse), et non à la ligne de commande, contrairement au monde unix.

par Berzemus » 15 oct. 2007, 11:33

c'est bien le problème, il a des tas de noms ce truc.. prompt, shell, batch, command.. pfrrt.. sous dos c'était possible, mais même si c'est ressemblant, je ne trouve pas de solution pour le shell xp..

ce serait quand même bête de passer sous cygwin juste pour avoir une coloration de texte..

par Calimero » 15 oct. 2007, 11:26

Il me semble que ce n'est pas faisable sous la ligne de commande de windows (pour une histoire de capacités de la fenêtre de terminal et peut-être aussi une limitation de php/cli sous windows).

Ayant constaté cette limitation il y a bien longtemps, j'ai fini par oublier CMD pour le remplacer par BASH (de cygwin), qui lui fonctionnait bien (et avec les mêmes codes que GNU/Linux)

par Ripat » 15 oct. 2007, 10:55

J'avais effectivement compris "comment faire en shell l'équivalent de color de XP". Et puis, j'avais oublié que le command.com était aussi appelé shell.

Désolé mais en shell windows, je ne sais pas trop faire.

Re: Coloration du texte dans le shell

par Berzemus » 13 oct. 2007, 17:56

Hum, j'ai peut-être pas été super-clair non plus..
(...) dans winXP. (...)
C'est dans ce cher "command" que j'essaye de pouvoir le faire..

Ceci dit, il faut vraiment que je m'installe une machine sous linux au boulot..

mais merci, tout de même..

par Ripat » 12 oct. 2007, 20:46

Tu vas devoir jouer avec les séquences esc couleur de l'émulation VT100: http://www.linuxjournal.com/article/8603

exemple:

Code : Tout sélectionner

#! /bin/bash # <ESC>[{attr};{fg};{bg}m # fg 3 # bg 4 BLACK=0 RED=1 GREEN=2 YELLOW=3 BLUE=4 MAGENTA=5 CYAN=6 WHITE=7 NORMAL=9 RESET=0 BRIGHT=1 DIM=2 echo -e "\\033["$BRIGHT";3"$RED";4"$BLUE"m" "Séquence Esc. pour rouge sur fond bleu --> ["$BRIGHT";3"$RED";4"$BLUE"m" echo -e "\\033["$RESET";3"$NORMAL"m"
EDIT:
Si tu veux afficher toutes les combinaisons supportées par ton terminal:

Code : Tout sélectionner

#! /bin/sh for attr in 0 1 4 5 7 do printf "ESC[%s;Fg;Bg\n" $attr for fg in 30 31 32 33 34 35 36 37 do for bg in 40 41 42 43 44 45 46 47 do printf '\033[%s;%s;%sm %s;%s ' $attr $fg $bg $fg $bg printf '\033[0m' done printf '\n' done printf '\033[0m \n' done

Coloration du texte dans le shell

par Berzemus » 12 oct. 2007, 16:23

Salut tout le monde,

Je m'amuse un peu avec le php en cli, et entre deux imports, je me disais que ce serait plus drôle de colorer le texte, ou l'entièreté du shell (comme avec la commande "color") dans winXP. Mais je parviens pas à faire exécuter la commande..

Quelqu'un aurait une idée ?