J'ai un ~/bin
répertoire (qui est sur mon PATH
) où je stocke beaucoup de petits scripts de 1 ou 2 lignes. Certains d'entre eux juste cd
dans un répertoire et exécutent une commande sur un fichier, comme vim
ou quelque chose. Mais j'ai aussi beaucoup d'alias dans mon .bash_aliases
dossier qui servent le même but.
Comment décidez-vous entre l'écriture d'un petit script bash et l'écriture d'un alias? Est-il important que vous alliez dans quelle direction?
Réponses:
Si je les utilise assez fréquemment pour justifier le surcoût de les avoir chargés dans chaque shell. Je vais les écrire comme des fonctions.
S'ils sont spécifiques à un projet, je pourrais les écrire sous la forme d'un ensemble d'alias et de fonctions pouvant être fournis dans un shell lorsque je travaille sur ce projet.
Ce n'est que s'ils fonctionnent de manière autonome que quelque chose est transformé en script dans mon ~ / bin. Il existe quelques liners qui sont essentiellement des alias, mais ceux-ci sont destinés à être exécutés à partir d'autres emplacements que les shells (exécutez des invites dans d'autres programmes par exemple). Pour la plupart, ils doivent être des scripts assez substantiels.
la source
En général, les fonctions de script shell sont plus flexibles que les alias et vous devriez les préférer. Par exemple, dans un alias, vous ne pouvez pas tester si le nombre d'arguments donnés ou leurs types sont ceux attendus. Je suis d'accord avec Caleb que les alias correspondent bien aux simples doublures, par exemple
alias cp='cp -i'
la source
Pour tout ce qui est plus compliqué une substitution de chaîne d'une seule commande, un script est probablement plus approprié. En outre, tout ce qui sera utilisé par d'autres scripts ou pourrait être utilisé par d'autres personnes est probablement mieux en tant que scripts. Bien que l'exécution de programmes à partir du répertoire bin de quelqu'un d'autre ne soit pas une bonne idée, c'est mieux que de trouver le fichier d'alias individuel de quelqu'un.
Les alias sont les meilleurs pour personnaliser votre environnement interactif. Par exemple,
e='emacs -nw'
et ce genre de chose.la source
J'utilise l'approche la plus simple possible.
Surtout, si la commande n'a pas de paramètres, j'utilise généralement des alias.
Si la commande a des paramètres, j'utilise une fonction.
par exemple créer et enregistrer dans un répertoire:
J'utilise également une fonction si la commande utilise une fonction installée qui a elle-même des paramètres
par exemple, en ajoutant -v à git:
la source