别名与variables在bash中
我想在bash创build一个别名,如下所示: 
 alias tail_ls="ls -l $1 | tail" 
因此,如果有人types:
 tail_ls /etc/ 
它只会显示目录中的最后10个文件。
 但$1似乎不适合我。 有没有什么办法可以在bash中引入variables。 
我会创build一个函数,而不是别名,然后导出它,如下所示:
 function tail_ls { ls -l "$1" | tail; } export -f tail_ls 
 注意-f切换到export :它告诉它你正在导出一个函数。 把这个放在你的.bashrc ,你很好。 
@ maxim-sloyko的解决scheme不起作用,但如果出现以下情况:
- 
在〜/ .bashrc中添加: sendpic () { scp "$@" mina@foo.bar.ca:/www/misc/Pictures/; }
- 
保存文件并重新加载 $ source ~/.bashrc
- 
并执行: $ sendpic filename.jpg
原始来源: http : //www.linuxhowtos.org/Tips%20and%20Tricks/command_aliases.htm
 alias tail_ls='_tail_ls() { ls -l "$1" | tail ;}; _tail_ls' 
如果你正在使用Fish shell(来自http://fishshell.com )而不是bash,他们写的function有点不同。
 你会想要添加这样的东西到你的~/.config/fish/config.fish里面~/.bashrc 
 function tail_ls ls -l $1 | tail end 
 tail_ls() { ls -l "$1" | tail; } 
 您可以使用set来定义$1 ,然后按照预期使用您的别名: 
 $ alias tail_ls='ls -l "$1" | tail' $ set mydir $ tail_ls