web-dev-qa-db-ja.com

cygwinで環境変数を設定するにはどうすればよいですか?

Linuxでは、私は行きます:

setenv -p MYVAR "somevalue"

しかし、これはcygwinでは機能しないようです。

19
BeeBand

デフォルトでは、Cygwinは Bourne Shell または Bash を実行しているため、変数を設定するコマンドは異なります。これは必要なコードです:

export MYVAR="somevalue"

export部分は、ローカル変数ではなく環境変数であることをシェルに知らせます。

ホームディレクトリにls -aと入力すると、次のファイルの一部またはすべてが表示されます。

.bashrc
.bash_profile
.profile

.bash_profileはログインシェルに対して実行され、.bashrcは対話型の非ログインシェルに対して実行されます。環境変数が常に設定されていることを最も簡単に確認するには、.bash_profileを開いてテキストを追加します。

export MYVAR="somevalue"

シェルは、起動するたびに.bash_profileを実行し、このコマンドを実行します。これで、MYVAR変数にいつでもアクセスできるようになります。変数をexportしなかった場合、.bash_profileファイル内でのみアクセスできます。

シェルに値を出力することにより、この変数が定義されていることを確認できます。

echo $MYVAR

次の方法で変数を削除(設定解除)できます。

unset $MYVAR

シェル構成ファイルの簡単な言葉

余談ですが、.bashrc vs .bash_profile vs. .profileに関しては、次の回答をご覧ください。

設定を簡単にするため、.bashrcから.bash_profileファイルを入手することをお勧めします。これを.bash_profileに追加します:

if [ -f ${HOME}/.bashrc ]; then
   source ${HOME}/.bashrc
fi

これにより、.bashrcから.bash_profileがロードされます。

これを行う場合、代わりに次の行を.bashrcに入れることができます。

export MYVAR="somevalue"
27
dbmikus

Cygwinで環境変数を設定する最良の方法は、bashプロファイルを作成し、ログインしてシェルを実行するたびにそのプロファイルを実行することです。

私の.bash_profileファイルでは、これは私が持っている設定です

Java_HOME = C:/Program Files/Java/jdk1.7.0_51
export Java_HOME
export PATH=$PATH:$Java_HOME/bin

Bashを実行したら、echo $ Java_HOMEをチェックアウトすると、パスが出力として表示されるはずです。

2
vsingh