GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tromper une commande en lui faisant croire que sa sortie va vers un terminal ?

Étant donné une commande qui change de comportement lorsque sa sortie va vers un terminal (par exemple, produire une sortie colorée), comment cette sortie peut-elle être redirigée dans un pipeline tout en préservant le comportement modifié ? Il doit y avoir un utilitaire pour cela, dont je ne suis pas au courant.

Certaines commandes, comme grep --color=always , ont des indicateurs d'option pour forcer le comportement, mais la question est de savoir comment contourner les programmes qui reposent uniquement sur le test de leur descripteur de fichier de sortie.

Si c'est important, mon shell est bash sous Linux.

Réponse acceptée :

Vous pourriez obtenir ce dont vous avez besoin en utilisant unbuffer .

unbuffer est un tcl / expect scénario. Regardez la source si vous voulez. Notez également la section CAVEATS dans man.

Notez également qu'il n'exécute pas les alias tels que :

alias ls='ls --color=auto'

à moins d'ajouter une astuce comme le note Stéphane Chazelas :

Si vous faites un alias unbuffer='unbuffer ' (notez l'espace de fin), puis les alias seront développés après unbuffer .


Linux
  1. Comment affecter la sortie d'une commande Linux à une variable

  2. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  3. Comment affecter la sortie d'une commande à une variable Shell ?

  4. Comment tromper une commande particulière en lui faisant croire qu'il s'agit d'une date différente ?

  5. Comment ajouter la sortie à un fichier ?

Comment activer l'horodatage dans la sortie de la commande d'historique Linux

Comment démarrer en ligne de commande Linux

Comment enregistrer tout ce que vous faites dans le terminal

Comment rediriger la sortie de la commande shell

Comment capturer les sessions de terminal et la sortie avec la commande de script Linux

Comment enregistrer la sortie de la commande dans un fichier à l'aide du terminal Linux