如何通过可执行文件使用别名?
How to use an alias by an executable?
当 运行 宁 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
一种方法是修改terraform-inventory
的源代码,让它执行terraformX
而不是terraform
。然后将terraform-inventory
的源代码编译成可执行文件。
有点远射
这样做
展开别名并接受命令说你的命令是
"terraform --print this"
现在写程序
int main( int ac, char **av )
{
return system( "terraform --print this" ); // or whatever the expanded alias
}
编译并赋予它与你的别名相同的名称,将它复制到你的 PATH
临时修改 PATH 环境变量而不是别名会有帮助。关键是删除 terraform
可执行文件的路径并将 terraformX
可执行文件放在不同的位置(然后 terraformX
可以命名为 terraform
或使用名称创建的符号链接 terraform
).
运行:
which terraform
输出:
/usr/bin/terraform
运行:
export PATH=~/:/bin/
mv terraformX ~/terraform
which terraform
输出:
~/terraform
现在 运行ning terraform-inventory --list
将 运行 terraform state pull
在后台使用 ~/terraform
而不是 /usr/bin/terraform
。
当 运行 宁 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
一种方法是修改terraform-inventory
的源代码,让它执行terraformX
而不是terraform
。然后将terraform-inventory
的源代码编译成可执行文件。
有点远射
这样做
展开别名并接受命令说你的命令是
"terraform --print this"
现在写程序
int main( int ac, char **av )
{
return system( "terraform --print this" ); // or whatever the expanded alias
}
编译并赋予它与你的别名相同的名称,将它复制到你的 PATH
临时修改 PATH 环境变量而不是别名会有帮助。关键是删除 terraform
可执行文件的路径并将 terraformX
可执行文件放在不同的位置(然后 terraformX
可以命名为 terraform
或使用名称创建的符号链接 terraform
).
运行:
which terraform
输出:
/usr/bin/terraform
运行:
export PATH=~/:/bin/
mv terraformX ~/terraform
which terraform
输出:
~/terraform
现在 运行ning terraform-inventory --list
将 运行 terraform state pull
在后台使用 ~/terraform
而不是 /usr/bin/terraform
。