这个问题已经有一个答案在这里:

它是可能做到如下:

我要运行如下:

mongodb bin/mongod

在我bash_profile我

alias = "./path/to/mongodb/$1"
有帮助吗?

解决方案

别名将扩大到串它代表。任何东西之后,别名后将出现其扩张,而不需要或能够作为明确的参数(例如 $1).

$ alias foo='/path/to/bar'
$ foo some args

会得到扩大到

$ /path/to/bar some args

如果你想使用明确的参数,则需要使用一个功能

$ foo () { /path/to/bar "$@" fixed args; }
$ foo abc 123

将被执行,因为如果你做了

$ /path/to/bar abc 123 fixed args

取消定义有别名:

unalias foo

取消定义的一个功能:

unset -f foo

看到的类型和定义(对每个定义的别名、关键词、功能、内或可执行文件):

type -a foo

或类型(为最高优先级生):

type -t foo

其他提示

通常,当我想通过的参数,以化名在庆典,我结合使用的别名和一个这样的功能,例如:

function __t2d {                                                                
         if [ "$1x" != 'x' ]; then                                              
            date -d "@$1"                                                       
         fi                                                                     
} 

alias t2d='__t2d'                                                               

使用参数的别名,我使用这种方法:

alias myalias='function __myalias() { echo "Hello $*"; unset -f __myalias; }; __myalias'

它是一个自我毁灭的功能包裹在一个别名,因此,它几乎是最好的两个世界,并且不采取额外线(s)在您的定义...我恨,哦,是啊,如果你需要返回的价值,只要存储这话之前取消,然后返回值使用的"返回"的关键在于自我毁灭的功能有:

alias myalias='function __myalias() { echo "Hello $*"; myresult=$?; unset -f __myalias; return $myresult; }; __myalias'

所以..

你可以,如果你需要有这个变量在那里

alias mongodb='function __mongodb() { ./path/to/mongodb/$1; unset -f __mongodb; }; __mongodb'

当然...

alias mongodb='./path/to/mongodb/'

实际上会做同样的事情,而不需要参数,但就像我说的,如果你想要或需要他们因为某些原因(例如,你需要2美元,而不是1美元),将需要使用包装喜欢这样。如果是大于一线可能考虑的只是写一个函数的彻底,因为它会成为更多的碍眼,因为它增大。功能是巨大的,因为你得到的所有津贴的功能得到(见完成,陷阱,结合等的好东西,其功能可以提供,在bash平).

我希望这可以帮助你:)

这是解决方案,它可以避免使用功能:

alias addone='{ num=$(cat -); echo "input: $num"; echo "result:$(($num+1))"; }<<<'

测试结果

addone 200
input: 200
result:201

csh (而不是 bash)你可以做你想要什么。

alias print 'lpr \!^ -Pps5'
print memo.txt

符号 \!^ 原因的论点被插在命令,在这一点上。

! 性格是由一个 \ 以防止其被解释为一个历史的命令。

你也可以通过多个参数:

alias print 'lpr \!* -Pps5'
print part1.ps glossary.ps figure.ps

(例从 http://unixhelp.ed.ac.uk/shell/alias_csh2.1.html .)

为了简化leed25d的答案,结合使用的别名和一个功能。例如:

function __GetIt {
    cp ./path/to/stuff/$* .
}

alias GetIt='__GetIt'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top