我发现很难找到合适的头衔。这就是我想要的:
$ some_prefix deploy
应该在deploy
中运行名为/some/directory/somewhere
的可执行文件,我可以将“deploy”替换为该目录中的任何其他可执行文件。我可以将/some/directory/somewhere
添加到我的PATH中,但是有些脚本具有通用名称,所以我想用前缀来调用它们。
答案 0 :(得分:2)
我认为你只想要一个硬编码路径的功能:
run_it () {
"/some/directory/somewhere/$1" "${@:2}"
}
然后致电
run_it deploy foo bar baz
运行
/some/directory/somewhere/deploy foo bar baz
答案 1 :(得分:1)
创建一个名为setmy
的函数或别名,它将根据/some/directory/somewhere
中的可执行文件列表设置许多别名函数。
您的setmy
将对所有可执行文件执行alias mydeploy=/some/directory/somewhere/deploy
接下来使用前缀my
调用您的函数,只跳过空格:
mydeploy
答案 2 :(得分:0)
您可以通过将其定义添加到命令中来临时重新定义PATH
的值:
PATH=/some/directory/somewhere:/usr/local/bin:/usr/bin:/bin deploy
这也可以打包成别名:
alias some_prefix='PATH=/some/directory/somewhere:$PATH'
这样你只需要运行:
some_prefix deploy
shell(bash
,zsh
甚至dash
)将首先扩展别名
PATH=/some/directory/somewhere:$PATH deploy
然后是PATH
参数
PATH=/some/directory/somewhere:/usr/local/bin:/usr/bin:/bin deploy
在使用重新定义的PATH
搜索deploy
命令和并将其传递到deploy
进程的环境之前。
注意:该定义仅限于以下命令,不到整个命令行。所以,如果你运行
some_prefix deploy ; deploy
仅在修改后的deploy
中搜索第一个PATH
,而第二个使用原始值PATH
。对于与|
,&&
或||
链接的命令也是如此。如果这是一个问题,您可能需要查看this question。当然,总是可以根据需要多次使用别名:
some_prefix deploy; some_prefix deploy