运行terraform-inventory
可执行文件时,它会在后台运行另一个名称为terraform
的可执行文件。我希望它遵循别名并改为运行terraformX
。由于我希望原始terraform
可执行文件保持不变,因此我添加了terraformX
。因此,我无法为terraformX
创建符号链接并将其命名为terraform
。 terraformX
是terraform
的另一个版本。
别名命令:
alias terraform='terraformX'
您可以使用以下命令为脚本启用别名扩展
shopt -s expand_aliases
但是,这不是脚本,可执行文件不会扩展别名。有没有办法让它扩展别名?
terraform-inventory
是此项目的可执行文件:https://github.com/adammck/terraform-inventory
terraform
是此网站的可执行文件:https://www.terraform.io/docs/commands/index.html
答案 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
。