110 votes

Alias avec variable in bash

Je veux créer un alias dans bash comme ceci:

 alias tail_ls="ls -l $1 | tail"
 

Ainsi, si quelqu'un tape: tail_ls / etc / il n’affichera que les 10 derniers fichiers du répertoire

Mais $ 1 ne semble pas fonctionner pour moi. Est-il possible d'introduire des variables dans bash?

Merci

169voto

Maxim Sloyko Points 4091

Je créerais une fonction pour cela plutôt qu'un alias, puis je l'exporterais comme ceci:

 function tail_ls { ls -l "$1" | tail; }

export -f tail_ls
 

Remarque -f passe à export : il indique que vous exportez une fonction. Mettez ceci dans votre .bashrc et vous êtes prêt à partir.

30voto

jruzafa Points 725

La solution de @ maxim-sloyko n'a pas fonctionné, mais dans les cas suivants:

  1. Dans ~ / .bashrc, ajoutez:

     sendpic () { scp "$@" mina@foo.bar.ca:/www/misc/Pictures/; }
     
  2. Sauvegarder le fichier et recharger

     $ source ~/.bashrc
     
  3. Et exécuter:

     $ sendpic filename.jpg
     

source originale: http://www.linuxhowtos.org/Tips%20and%20Tricks/command_aliases.htm

2voto

l0b0 Points 10719

tail_ls() { ls -l $1 | tail }

1voto

innovati Points 30

Si vous utilisez la coquille de poisson (de http://fishshell.com ) au lieu de bash, ils écrivent des fonctions un peu différemment.

Vous voudrez ajouter quelque chose comme ceci à votre ~/.config/fish/config.fish ce qui correspond à votre ~/.bashrc

 function tail_ls
  ls -l $1 | tail
end
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X