如何制作envvar修改别名

时间:2014-12-10 18:45:11

标签: bash

我从同一个文件夹中运行了几个Heroku应用程序,我经常需要通过两个环境变量之一来定位我正在键入的命令的特定应用程序

我可以选择的选项是:

heroku command --app MYAPPID
heroku command -r MYAPPSGITREMOTEID
HEROKU_APP=MYAPPID heroku command

我目前使用-r但是很难用它构建别名,特别是如果我想将heroku命令的输出传递给另一个命令...如果别名是,我不能调用myalias -r myappid heroku command | tail

我更喜欢像

这样的东西 评估为@production heroku command

HEROKU_APP=MYPRODUCTIONID heroku command

奖励点如果它可以使用链接别名,例如@production myalias,它会扩展目标app envvar别名和要执行别名的命令

任何想法?

1 个答案:

答案 0 :(得分:2)

这是shell函数的完美解决方案:

myheroku () {
    local heroku_app=$1
    shift
    env HEROKU_APP="$heroku_app" heroku "$@"
}

myalias1 () {
    myheroku "$1" specific command here
}
myalias2 () {
    myheroku "$1" some other command 
}
# ...

然后

myalias1 @production

最终会调用

env HEROKU_APP="@production" heroku specific command here