J'ai un programme qui utilise printf
avec certains tput
mélangés et je voudrais diriger la sortie vers stdout ainsi qu'un fichier. Je préfère utiliser sed
car je ne veux pas de dépendances inutiles sur mon script. Voici ce que j'ai jusqu'à présent.
printf "\n$(tput setaf 6)| $(tput sgr0)$(tput setaf 7)Sourcing files...\033[m\n" | tee install.log
Le seul problème avec cela est que mon fichier journal obtient toute la sortie couleur en tant que telle ...
^[[36m| ^[(B^[[m^[[37mSourcing files...^[[m
Je voudrais juste avoir | Sourcing files...
bash
shell-script
bash-script
iamnewton
la source
la source
sed
options ne semblent pas fonctionner.Réponses:
Selon la suppression des couleurs de la sortie , votre commande doit être:
Pour des raisons de commodité, vous pouvez également créer un alias dans
/etc/profile
[Éditer]
Avec la sortie donnée, vous pouvez vérifier cela par vous-même:
Le résultat:
la source
-r
indicateur ne semble pas fonctionner sur Mac BSD, j'ai donc essayé d'utiliser-E
semble être le plus similaire et il est toujours en sortie dans le fichier journal en tant que tel ...^[36m| ^[(B^[[m^[[37mSourcing files...^[[m
Il revient également comme| ^[(BSourcing files...
sur ma boîte Linux.|xxd
et votreTERM
env. var.TERM
=>xterm
.0000000: 1b5b 316d 1b5b 3333 6de2 9aa0 2020 5761 .[1m.[33m... Wa 0000010: 726e 696e 673a 201b 2842 1b5b 6d4e 6f20 rning: .(B.[mNo 0000020: 2f55 7365 7273 2f61 7077 2f2e 6261 7368 /Users/apw/.bash 0000030: 2066 6f75 6e64 2e21 0a found.!.
stripcolors
fonction car Mac OS X ne comprend pas l'-r
option de lased
commande. Je suppose que vous êtes sur une sorte de distribution Linux?