bashコマンドに複数の環境変数を設定する方法


108

コマンド(ec2-describe-regions)を実行する前に、EC2_HOMEおよびJAVA_HOME変数を設定することになっています。

それを一度に行うにはどうすればよいですか?

回答:


164

コマンドの前にコマンドラインでそれらを置くことにより、単一のコマンドに対して一度だけ変数を設定できます:

$ EC2_HOME=/path/to/dir JAVA_HOME=/other/path ec2-describe-regions

または、環境にエクスポートすることもできます。その場合、将来のすべてのコマンドに設定されます。

$ export EC2_HOME=/path/to/dir
$ export JAVA_HOME=/other/path
$ ec2-describe-regions

7
一般的ではないようですが、と書くこともできexport EC2_HOME=/path JAVA_HOME=/pathます。
William Pursell 16

4
ワンタイムオプションは、スクリプトで非常に役立ちます。rootまたは別のユーザーとしてコマンドを実行する必要がある人へのメモとして、変数はsudoまたはユーザーの後に置く必要があります。例sudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
Nagev、2017年

先頭に追加して提供できる変数の数に制限はありますか?
Sam Thomas

コマンドラインの長さの最大制限。これはLinuxでは非常に大きいです。
Chris Dodd

2

他の* nixシステムと同様に、HOMEディレクトリの下の.bashrcファイルに次のような機能を追加できます。

function startec2(){
    EC2_HOME=/path/to/dir
    JAVA_HOME=/other/path 
    ec2-describe-regions
}

これで、次のコマンドでプログラムを開始できます。

startec2

4
私の知る限り、これはbash変数のみを作成し、機能しません。
TNW 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.