/ / Essayer de comprendre le sens de 'alias | "une-commande" - syntaxe - bash, alias

Essayer de comprendre le sens de 'alias | some-command "syntaxe - bash, alias

Qu'est-ce que la tuyauterie de alias commande signifie ici?

$ alias which="alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde"

Réponses:

3 pour la réponse № 1

C'est un hack (non portable) pour laisser GNU which essayez de vous comporter plus comme type.

L’outil intégré bash permettant d’afficher non seulement les emplacements de commandes externes, mais également les alias, les fonctions, etc. type. Lorsqu'il est appelé avec un alias (ou une fonction shell), il émettra sa définition:

$ type ls
ls is aliased to `ls --color=auto"

Car which est une commande externe, elle n’a aucun moyen de connaître les pseudonymes ... sauf si ils sont nourris sur stdin:

$ alias                             # we have some aliases defined...
alias ls="ls --color=auto"
alias some-other-alias="whatever"
$ which ls                          # but which doesn"t know about them...
/usr/bin/ls
$ alias | which --read-alias ls     # *unless* we feed the definitions to it via stdin
alias ls="ls --color=auto"
/usr/bin/ls

Comme vous pouvez le voir ci-dessus, which --read-alias cherche dans son stdin (supposé être une liste dealias) pour une définition d’alias qui semble correspondre à la commande en question et l’émet sur sa sortie. Il obtient ces définitions à partir de la sortie du shell intégré alias commande, qui les émet lorsqu’il est appelé sans arguments.

Ceci est toujours inférieur, et vous devriez utiliser type Au lieu de cela, chaque fois que vous savez que votre shell est bash. contrairement à which, type connaît les fonctions du shell; il connaît les recherches en cache dans PATH; il est garanti qu’il est disponible partout où bash est installé (contrairement à GNU which, indisponible par défaut sur les plateformesqui ont des outils non-GNU tels que MacOS ou FreeBSD); et il peut tout faire à l'intérieur du shell, sans avoir à générer de logiciel externe.