Je veux connaître la différence entre les alias et les fonctions dans le shell bash - et quand utiliser lequel.
Il semble évident que puisque les fonctions peuvent prendre des arguments, elles sont beaucoup plus puissantes - comme je travaille principalement sur la route avec un netbook et que je veux économiser de l'énergie et de la puissance de traitement, j'aimerais surtout en savoir un peu plus sur les différences de performances de ces deux façons d'étendre la fonctionnalité bash sont.
Réponses:
Considérez les alias comme des surnoms. Vous pouvez avoir une commande que vous effectuez beaucoup mais que vous souhaitez raccourcir.
Par exemple, vous voulez souvent aller directement au bureau en ligne de commande, vous pouvez donc le faire
A partir de là, il vous suffit de taper
dans le terminal et il effectuera le
cd ~/Desktop
pour vous.Les fonctions contiennent de la logique. Dans une fonction, vous pouvez appeler plusieurs programmes différents. Voici une fonction d'écho simple
Bien qu'il puisse ressembler à un alias lorsque vous l'appelez
Votre e () peut se produire de nombreuses choses différentes. Ce qui précède est un exemple simpliste.
Les alias doivent être réservés aux cas d'utilisation simples. Exemple personnel - j'ai remplacé ma
rm
commande comme ceciChaque fois que je fais un rm, il l'enverra dans la corbeille au lieu de le supprimer du disque. Cela répond à ma maladresse dans le terminal où je peux (parfois) accidentellement supprimer un fichier important.
Les fonctions , vous devez vous en souvenir, sont des morceaux de logique. En règle générale, vous n'utilisez pas de fonction autonome. Cela ferait partie d'un script plus large. Imaginez un script qui prend tous vos fichiers et les renomme dans leurs versions latines de porc. Ignorez qu'il existe différentes façons de le faire.
Mais ce que vous pourriez faire, c'est parcourir tous les fichiers du répertoire et passer le chemin d'accès à votre fonction RenameAsPigLatin. La fonction RenameAsPigLatin peut avoir une logique supplémentaire là-dedans impliquant des nombres, où vous décidez que les fichiers se terminant par des nombres ne doivent pas être renommés.
Immédiatement, vous pouvez voir l'avantage de l'avoir comme fonction. La fonction peut se concentrer sur le changement de nom selon vos règles étranges tandis que le reste du script peut parcourir divers répertoires si nécessaire.
la source
Un alias est un simple raccourci utilisé dans une console pour éviter de taper de longues commandes ou de répéter toujours les mêmes options.
Un exemple classique serait:
Les alias ne fonctionnent que dans une console interactive, ils ne sont pas destinés à être utilisés dans des scripts.
La fonction peut être utilisée dans des scripts ou dans la console, mais est plus souvent utilisée dans des scripts.
Contrairement aux alias, qui sont juste remplacés par leur valeur, une fonction sera interprétée par le shell bash.
Les fonctions sont beaucoup plus puissantes que les alias, elles peuvent être utilisées pour construire des programmes très complexes.
la source