Je voudrais savoir s'il y a un moyen de modifier la sortie de chaque commande que j'exécute dans le terminal. Le but est de rendre la sortie formatée pour mon howto de démarquage.
Il y a probablement des inconvénients / pièges, prenez garde à cela.
Une autre approche consiste à exécuter script(voir man script), puis utilisez votre éditeur de texte favori (ou un petit perl / awk / etc script) pour le rendre convivial démarquage - je voudrais juste ne En vim quelque chose comme :%s/^/#> /de fixer toutes les lignes en une seule fois . Ensuite, j'insérerais les en-têtes de démarques, etc.
C'est exactement ce dont j'ai besoin. Je prévois de l'utiliser lors de l'exécution de toutes sortes de commandes. Y a-t-il des inconvénients / pièges auxquels vous pouvez penser?
Hologos
@Hologos: Certaines commandes se comportent différemment si STDOUT est dirigé vers un processus plutôt que connecté à un téléscripteur. De plus, il y a une certaine bizarrerie dans l'invite du shell qui ne semble pas causer de dommages, mais qui est déconcertante. Il y a probablement plus.
RedGrittyBrick
1
IFS=$'\n';for line in`ls -la .*z`;do echo "#>$line";done
il ls -la .*zparcourra la commande output ( ) et affichera le résultat à l’écran en ajoutant un préfixe #>à chaque ligne
ps:
la IFSpartie sert à définir le délimiteur sur une nouvelle ligne au lieu d'un espace
Merci, y a-t-il un moyen que je ne devrais pas avoir à écrire ceci? Quelque chose comme cd() { builtin cd "$@" && ll; }mais pour chaque commande ou un type d'alias qui modifierait chaque commande en arrière-plan?
Hologos
pourquoi voudriez-vous éviter d'utiliser la forboucle?
Ou quelque chose comme ls -la .z*ça mais ça le développerait automatiquement comme ls -la .z* | my-programce qui contiendrait votre code.
il
ls -la .*z
parcourra la commande output ( ) et affichera le résultat à l’écran en ajoutant un préfixe#>
à chaque ligneps:
la
IFS
partie sert à définir le délimiteur sur une nouvelle ligne au lieu d'un espacela source
cd() { builtin cd "$@" && ll; }
mais pour chaque commande ou un type d'alias qui modifierait chaque commande en arrière-plan?for
boucle?ls -la .z*
ça mais ça le développerait automatiquement commels -la .z* | my-program
ce qui contiendrait votre code.