变量我想在bash
创建别名是这样的:别名与在bash
alias tail_ls="ls -l $1 | tail"
因此,如果有人类型:
tail_ls /etc/
它只会显示最后的10个文件目录。
但是$1
似乎不适合我。有什么办法可以在bash中引入变量。
变量我想在bash
创建别名是这样的:别名与在bash
alias tail_ls="ls -l $1 | tail"
因此,如果有人类型:
tail_ls /etc/
它只会显示最后的10个文件目录。
但是$1
似乎不适合我。有什么办法可以在bash中引入变量。
我想创建一个函数,该函数,而不是别名,然后出口,就像这样:
function tail_ls { ls -l "$1" | tail; }
export -f tail_ls
注-f
开关export
:它告诉它要导出一个函数。把这个放在你的.bashrc
,你很好走。
通常不需要导出函数。 – 2010-12-14 10:58:31
@丹尼斯,是的,你说得对,一个简单的别名不是必须的,但它是在那里,以防万一你想在一些派生的shell /进程中使用它。 – 2010-12-14 11:10:52
在bash中,你需要输入一个分号';'在关闭父项'}'之前将函数折叠为一个oneline。 '函数tail_ls {ls -l“$ 1”|尾巴}'没有像尾巴一样的结尾不起作用; }'。 – 2012-02-08 10:26:42
tail_ls() { ls -l "$1" | tail; }
请修正语法错误(在'}'之前缺少';'和双引号'$ 1'),以便支持带有内嵌空白和其他shell元字符的文件名。 – mklement0 2016-02-21 22:22:46
@格言 - sloyko的解决方案没有奏效,但如果以下内容:
在〜/ .bashrc中添加:
sendpic() { scp "[email protected]" [email protected]:/www/misc/Pictures/; }
保存文件并重新加载
$ source ~/.bashrc
并执行:
$ sendpic filename.jpg
原始出处:http://www.linuxhowtos.org/Tips%20and%20Tricks/command_aliases.htm
@fedorqui感谢您的帮助。 – jruzafa 2014-08-22 07:55:13
像魅力一样工作 – 2016-08-26 10:05:26
@jruzafa,在这种情况下,您声称'maxim-sloyko作品的解决方案无效',而他/她的解决方案为我自己工作。 – 2017-10-23 10:08:02
如果你正在使用的不是bash的鱼贝(从http://fishshell.com),它们不同的功能写一点。
你会想这样的事情添加到您的~/.config/fish/config.fish
这是你的~/.bashrc
function tail_ls
ls -l $1 | tail
end
alias tail_ls='_tail_ls() { ls -l "$1" | tail ;}; _tail_ls'
这是一个创造性的方法。如果他们需要**使用别名而不是函数,那么肯定可以解决这个问题......我认为我更喜欢一个函数,如果这些函数是一个选项,而是一个非常整洁的解决方案,以便在出现正确的情况时记住! – lagweezle 2016-07-21 16:00:13
相当于您可以set
定义$1
,然后用你的别名,如预期:
$ alias tail_ls='ls -l "$1" | tail'
$ set mydir
$ tail_ls
csh和tcsh支持别名中的'$ 1'等参数; bash不会。 – 2014-12-31 02:13:54