6
votes

Comment obtenir le nom de l'alias qui a invoqué Bash Script

0 $ code> se développe au nom du script shell. xxx pré>

si le script shell est invoqué via une liaison symbolique, 0 $ 0 code> Développe à son nom: P>

$ alias aliased-script=./sample-script
$ aliased-script
./sample-script


0 commentaires

3 Réponses :


2
votes

bash ne rend pas cela disponible. C'est pourquoi les liens symboliques sont utilisés pour appeler des commandes multiplexes et non les alias.


0 commentaires

12
votes

Les alias sont assez stupides, selon La page man

... Les alias sont étendus lorsqu'une commande est lue, pas lorsqu'elle est exécutée ...

Donc, puisque BASH, il suffit de remplacer une chaîne avec une autre chaîne, puis de l'exécuter, il n'y a aucun moyen pour la commande de savoir ce qui a été élargi dans l'alias.


2 commentaires

+1 Pour une réponse rapide et techniquement correcte, y compris le lien et la citation. Merci un tas!


J'ai cherché cela dans le Guide de script Bash Advanced Bash sous Variables internes et Il n'y a pas de référence là-bas non plus. Merci pour cette réponse.



3
votes

J'imagine que vous le savez déjà, mais pour l'enregistrement, la réponse est la suivante: Vous avez besoin de coopération par le code implémentant l'alias. xxx

ou, si vous Virez-vous vraiment utiliser la syntaxe d'alias remplacée: xxx

... et ... xxx


2 commentaires

Mais ce n'est plus un alias.


Merci beaucoup! Vous avez raison: j'utilise des alias de cette façon depuis des âges. Je n'y pensais tout simplement pas jusqu'à ce que tu me rappelais! :-)