如何将命令行参数传递给shell别名?
如何将命令行参数传递给别名? 这是一个示例:
alias mkcd='mkdir $1; cd $1;'
但是在这种情况下,$ xx会在创建时间的别名时进行翻译,而不是在运行时进行翻译。 不过,我已经创建了一个解决方法,使用一个shell函数(google搜索一下之后),如下所示:
function mkcd(){ mkdir $1 cd $1 }
只是想知道是否有办法让别名接受CL参数。
顺便说一句 - 我使用'bash'作为我的默认shell。
你找到了方法:创建一个函数而不是别名。 C shell有一个用于处理别名参数的机制,但bash和Korn shell不这样做,因为函数机制更加灵活并且提供了相同的功能。
为了重申已经发布的其他shell的内容,在Bash中有以下几个作品:
alias blah='function _blah(){ echo "First: $1"; echo "Second: $2"; };_blah'
运行以下内容:
blah one two
给出如下输出:
First: one
Second: two
你不能在ksh中,但你可以在csh中。
alias mkcd 'mkdir !^; cd !^1'
在ksh中,函数是要走的路。 但是如果你真的想用别名:
alias mkcd='_(){ mkdir $1; cd $1; }; _'
链接地址: http://www.djcxy.com/p/57073.html