bashスクリプトでグローバル環境変数を設定するにはどうすればよいですか?
私が次のようなことをするなら
#!/bin/bash
FOO=bar
...または
#!/bin/bash
export FOO=bar
... varsはローカルコンテキストにとどまっているようですが、スクリプトの実行が終了した後もvarsを使い続けたいと思います。
回答:
でスクリプトを実行する . 
. myscript.sh
これにより、現在のシェル環境でスクリプトが実行されます。
export 新しいプロセスで使用できる変数を管理します。
FOO=1
export BAR=2
./runScript.sh
その後$BAR、の環境で利用可能になりますがrunScript.sh、利用でき$FOOません。
sourceのエイリアスです.。したがってsource myscript.sh、より明確にしたい場合は、代わりに実行できます。
                    シェルスクリプトを実行すると、サブシェルで実行されるため、親シェルの環境に影響を与えることはありません。次の手順でスクリプトを入手します。
. ./setfoo.sh
これは、の文脈でそれを実行し、現在のないように、シェルサブシェル。
bashのmanページから:
。ファイル名[引数]
ソースファイル名[引数]現在のシェル環境でfilenameからコマンドを読み取って実行し、filenameから最後に実行されたコマンドの終了ステータスを返します。
filenameにスラッシュが含まれていない場合、PATH内のファイル名を使用して、filenameを含むディレクトリが検索されます。
PATHで検索されるファイルは、実行可能である必要はありません。bashがPOSIXモードでない場合、PATHにファイルが見つからない場合は、現在のディレクトリが検索されます。
shopt組み込みコマンドのsourcepathオプションがオフになっている場合、PATHは検索されません。
引数を指定すると、ファイル名実行時の定位置パラメータになります。
それ以外の場合、位置パラメータは変更されません。戻りステータスは、スクリプト内で最後に終了したコマンドのステータス(コマンドが実行されていない場合は0)であり、ファイル名が見つからないか読み取れない場合はfalseです。
source myscript.sh また、実行可能です。
Linuxコマンドの説明source:
source is a Unix command that evaluates the file following the command, 
as a list of commands, executed in the current context
sourceですか?
                    man sourceすると、必要なものが得られます。
                    sourceます。たぶんOPはそうではありません。
                    #!/bin/bash
export FOO=bar
または
#!/bin/bash
FOO=bar
export FOO
マニュアルエクスポート:
シェルは、指定された名前に対応する変数にexport属性を与えます。これにより、変数は、後で実行されるコマンドの環境に置かれます。変数の名前の後に= wordが続く場合、その変数の値はwordに設定されます。
export FOO = /mydir/bar
                    FOO=bar
export FOO