Bashスクリプトでexportを使って環境変数を設定する方法【HowTo】
このチュートリアルでは、Bash/シェルスクリプトでexportキーワードを使用して環境変数を設定する方法を解説します。
通常、Bash/シェルスクリプト内で宣言された変数は、その実行中のスクリプトのスコープ内でのみ有効です。
変数を他の場所でも利用できるようにするには、環境変数として設定します。環境変数として設定すると、スクリプト外でコマンドを実行する際にもその変数が利用可能になります。例えば、スクリプトの実行完了後、コマンドラインからその変数を参照できるようになります。
exportキーワードはこの役割を担います。以下、具体的な使い方を見ていきましょう。
環境変数とは
環境変数は他の変数とほぼ同じように動作しますが、スクリプト内、コマンドライン上、さらには実行中の他のプログラムからもアクセスできる点が異なります。
実は、システムにはすでに多くの環境変数が定義されています。例えば、ホームディレクトリのパスは環境変数$HOMEを読み取ることで取得できます。
現在設定されているすべての環境変数は、envコマンドで確認できます。
env
exportを使った環境変数の設定
次のスクリプトtestScript.shは、環境変数を1つ設定した後に終了します。
#!/bin/bash export MY_ENV_VAR="Save the environment!"
このスクリプトを以下のように実行します。
sh ./testScript.sh
すると、変数MY_ENV_VARはスクリプトの実行完了後も利用可能になります。以下のコマンドで確認してみましょう。
echo $MY_ENV_VAR
これで環境変数が設定され、システム全体で利用できる状態になりました。
また、printenvコマンドを使っても環境変数の値を確認できます。
printenv MY_ENV_VAR
再起動後も環境変数を保持する方法
exportで設定した環境変数は、コンピュータを再起動すると失われてしまいます。環境変数を永続的に設定したい場合は、~/.bashrcファイル内で宣言する必要があります。
~/.bashrcファイルは、ログインするたびに自動的に実行されるスクリプトです。ここにexport文を追加しておけば、ログインするたびに環境変数が自動的に設定されるようになります。
nano ~/.bashrc
上記のコマンドでは、nanoテキストエディタを使ってファイルを編集しています。ファイルの末尾にexport文を追加すれば、再起動後も設定が維持されます。
export MY_ENV_VAR="Save the environment!"
システム全体の環境変数を設定する
上記の方法で設定した環境変数は、現在のユーザーに対してのみ有効です。管理者として、すべてのユーザーやプロセスから利用できるようにしたい場合は、代わりに/etc/environmentファイルに設定行を追加してください。
sudo nano /etc/environment
-
Bash変数チュートリアル – 基本からグローバル変数・ローカル変数まで学べる6つの実用例
Bash変数は、プログラムの実行期間中に必要となる情報を一時的に保存しておくための仕組みです。本記事はBashチュートリアルシリーズの一篇で、他のプログラミング言語と同様にBashでも変数を利用できることを踏まえ、基本的な使い方からグローバル変数とローカル変数の違いまでを、6つの実用的なサンプルを通じて解説します。 Bash変数の基本構文 変数の定義は非常にシンプルで、次の書式に従います。 VARNAME=VALUE 注意: 変数へ代入する際は、「=」記号の前後にスペースを入れてはいけません。「VAR=VALUE」のように書けば、シェルは「=」を代入記号として認識し、この行を変数への代入とし
-
Windows 10 で環境変数を設定・編集する方法を初心者向けに解説
環境変数とは、PC上で動作するプログラムの設定に使われるグローバルな値のことです。名前だけ聞くと難しく感じられますが、実際には「さまざまなアプリが共通して参照できる設定情報の保管場所」と考えると分かりやすいでしょう。 環境変数にはユーザーごとに紐づくものがあり、ユーザーアカウントが異なれば設定内容も変わります。その一方で、「%windir%」のようなシステム全体で共通の変数も存在します。たとえば「%windir%」は、Windowsがインストールされているディレクトリ(例:「C:\Windows」)を常に指します。アプリ側ではこの値を直接ハードコードせず、「%windir%」を参照することでW