如何使用可执行文件的别名?

时间:2017-11-01 03:21:06

标签: bash alias executable terraform ansible-inventory

运行terraform-inventory可执行文件时,它会在后台运行另一个名称为terraform的可执行文件。我希望它遵循别名并改为运行terraformX。由于我希望原始terraform可执行文件保持不变,因此我添加了terraformX。因此,我无法为terraformX创建符号链接并将其命名为terraformterraformXterraform的另一个版本。

别名命令:

alias terraform='terraformX'

您可以使用以下命令为脚本启用别名扩展

shopt -s expand_aliases

但是,这不是脚本,可执行文件不会扩展别名。有没有办法让它扩展别名?

terraform-inventory是此项目的可执行文件:https://github.com/adammck/terraform-inventory terraform是此网站的可执行文件:https://www.terraform.io/docs/commands/index.html

3 个答案:

答案 0 :(得分:0)

一种方法是修改terraform-inventory的源代码,让其执行terraformX而不是terraform。然后将terraform-inventory的源代码编译成可执行文件。

答案 1 :(得分:0)

它有点远射

这样做

展开别名并按命令说出你的命令是

"terraform --print this"

现在写一个程序

int main( int ac, char **av )
{
   return system( "terraform --print this" ); // or whatever the expanded alias
}

编译并为其指定与别名相同的名称,将其复制到PATH

答案 2 :(得分:0)

而不是别名,临时修改PATH环境变量可以提供帮助。关键是删除terraform可执行文件的路径并将terraformX可执行文件放在不同的位置(然后terraformX可以命名为terraform或者使用名称{terraform创建符号链接{1}})。

执行命令

which terraform

输出:

/usr/bin/terraform

执行命令

export PATH=~/:/bin/
mv terraformX ~/terraform
which terraform

输出:

~/terraform

现在正在运行terraform-inventory --list将使用terraform state pull代替~/terraform在后​​台运行/usr/bin/terraform