别名与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