2017-11-01 27 views
-2

terraform-inventory実行ファイルを実行すると、バックグラウンドで別の実行ファイル名がterraformとして実行されます。エイリアスに従ってterraformXを実行してください。オリジナルのterraformをそのまま実行したいので、私はterraformXを追加しました。したがって、terraformXへのシンボリックリンクを作成することはできません。その名前はterraformとなります。 terraformXterraformの別のバージョンです。エイリアスを実行可能ファイルで使用する方法は?

エイリアスコマンド:

alias terraform='terraformX' 

あなたがしてスクリプトのエイリアス展開を可能にすることができる:

shopt -s expand_aliases 

はしかし、これは、スクリプトではなく、実行可能ファイルは、エイリアスを拡大していません。エイリアスを展開する方法はありますか?

terraform-inventoryは、このプロジェクトの実行可能ファイル:https://github.com/adammck/terraform-inventoryです。
terraformこのウェブサイトから実行可能である:https://www.terraform.io/docs/commands/index.html

+1

*実行可能ファイル*がここに何か詳細を教えてください。 *バイナリ*?*実行可能*、*バイナリ*、*コマンド*シェルスクリプトのいずれかですか? –

+0

また、他のコマンドをどのように「呼び出し」ますか? –

+0

質問を改めました。問題を解決する1つの方法を提供しました。実行可能ファイルがエイリアスを使用できるかどうかを知ることに興味があります。 – dabest1

答えて

0

エイリアスの代わりに、PATH環境変数の一時的な変更が役立ちます。鍵はterraformの実行可能ファイルのパスを削除し、別の場所にterraformXを実行可能にします(terraformXterraformという名前にするか、またはterraformという名前でシンボリックリンクを作成します)。

ラン:

which terraform 

出力:

/usr/bin/terraform 

ラン:

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

出力:

~/terraform 

terraform-inventory --listを実行すると、/usr/bin/terraformの代わりに~/terraformを使用して、バックグラウンドでterraform state pullが実行されます。

0

一つの方法は、terraform-inventoryのソースコードを変更して、terraformX代わりにterraformを実行させることです。その後、ソースコードterraform-inventoryを実行可能ファイルにコンパイルします。

0

そのはロングショット

のビットこの

は別名を拡張し、コマンドを取るかは、あなたのコマンドは

"terraform --print this" 

今プログラム

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

コンパイルを書くと言いますエイリアスと同じ名前をつけて、PATHにコピーしてください

+0

ありがとうございます。 PATHという言葉に触れたとき、私は自分の問題を解決する簡単な方法を実現しました。 – dabest1

関連する問題