De nombreux utilitaires de ligne de commande peuvent prendre leur entrée à partir d'un canal ou d'un argument de nom de fichier. Pour les scripts shell longs, je trouve que le démarrage de la chaîne avec la cat
rend plus lisible, en particulier si la première commande a besoin d'arguments sur plusieurs lignes.
Comparer
sed s/bla/blaha/ data \
| grep blah \
| grep -n babla
et
cat data \
| sed s/bla/blaha/ \
| grep blah \
| grep -n babla
Cette dernière méthode est-elle moins efficace? Si tel est le cas, la différence est-elle suffisante pour que le script soit exécuté, par exemple une fois par seconde? La différence de lisibilité n'est pas énorme.
cat
. Cependant, je pense que la plus grande question ici est la lisibilité du code, qui est souvent une priorité par rapport aux performances. Quand plus vite peut réellement être écrit plus joli , pourquoi pas? Souligner le problème avec cat
conduit généralement l'utilisateur à une meilleure compréhension des pipelines et des processus en général. Cela en vaut la peine, alors ils écrivent du code compréhensible la prochaine fois.
cat
; l'argument de Caleb concernant l'utilisation de fonctions et la redirection résout également ce problème.)