2012-04-12 54 views
1

可能重复:
Shell Script: How to pass command line arguments to an UNIX alias?bash编程,插入参数到bash的别名

如何插入参数到一个bash别名吗?

例如, 每当我创建一个新目录&我cd进入它的大部分时间,但为此我必须运行两个命令。

$ mkdir directory 
$ cd directory 

所以,我想知道是否有可能在单独命令来创建一个新的目录&切换到它。尝试添加下面的别名在我的.bashrc文件:

alias mkdir="mkdir [email protected] && cd [email protected]" 

的话,我可以把它叫做正常mkdir directory &它会造成&然后切换到该目录。但没有骰子,它没有工作!

任何关于如何插入参数到别名的指针?

+0

[没有办法做到这一点](http://stackoverflow.com/questions/1821495/how-do-i-include-parameters-in-a-bash-alias)。 – l0b0 2012-04-12 11:11:18

+0

看起来像这样已经回答了:http://stackoverflow.com/questions/941338/shell-script-how-to-pass-command-line-arguments-to-an-unix-alias – lucrussell 2012-04-12 11:12:51

回答

4

考虑将其定义为函数。

function mkdir2 { 
    mkdir [email protected] 
    cd [email protected] 
} 

您将无法通过这种方式将它别名为mkdir,但它可以按照您的预期进行操作。

+0

你可以命名函数mkdir ,但是你不能递归调用它:mkdir(){command mkdir $ 1; cd $ 1; } – 2012-04-12 13:25:40

+0

稍有改进 - 引用的参数,如果mkdir失败,请不要尝试cd: 'function mkdir {command mkdir“$ @”&& cd“$ @”; }' – 2012-04-18 01:39:33