Mac OS X 10.9で永続的な環境変数(つまり、新しいターミナルセッションを開始するたびにエクスポートする必要のない環境変数)を設定するにはどうすればよいですか? .bash_profile
と.profile
の変更に関する多くの答えを見つけましたが、これらのオプションはどちらも永続的なソリューションとしては機能しないようです-一時的なものです。設定しようとしている変数はMULE_HOME
です。 bashプロファイルに次の行があります。
export MULE_HOME=$(/opt/mule-standalone-3.4.0)
ただし、Terminalを起動すると、次の行が表示されます(これが正常な動作かどうかわかりませんか?):
-bash: /opt/mule-standalone-3.4.0: is a directory
また、単純なenv
コマンドを実行すると、次の結果が返されます。
TERM_PROGRAM=Apple_Terminal
Shell=/bin/bash
TERM=xterm-256color
TMPDIR=/var/folders/fc/68bqp4jj411gynj5qvwhq6z1shs1fy/T/
Apple_PubSub_Socket_Render=/tmp/launch-xKtkql/Render
TERM_PROGRAM_VERSION=326
TERM_SESSION_ID=E97BFE4B-AF85-4933-B252-0883CC085349
USER=dan
SSH_AUTH_SOCK=/tmp/launch-rEmTWW/Listeners
__CF_USER_TEXT_ENCODING=0x730C85DE:0:0
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
__CHECKFIX1436934=1
PWD=/Users/dan
Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
LANG=en_GB.UTF-8
MULE_HOME=
SHLVL=1
HOME=/Users/dan
LOGNAME=danwiseman
_=/usr/bin/env
これを回避するために、私は現在、新しいターミナルセッションを開始するたびにexport MULE_HOME=/opt/mule-standalone-3.4.0
と入力する必要がありますが、これは激しいものではありませんが、少し不便です。ここで何が間違っているのですか?変数が一時的にのみ設定されていますか?前もって感謝します。
$(...)
ビットをドロップします。これにより、括弧内のコマンドの実行が試行され、$MULE_HOME
が生成するものに設定されます。あなたの場合、/opt/mule-standalone-3.4.0
は実行可能ファイルではないため、エラーが発生します。
export MULE_HOME=/opt/mule-standalone-3.4.0
~/.bashrc
ではなく~/.bash_profile
を使用します。
編集:~/.bash_profile
スクリプトではなく、~/.bashrc
スクリプトで環境変数を設定すべきだという意見があるようです。
これは本当に簡単で迅速でした。まず、ターミナルから〜/ .bash_profileを作成します。
touch ~/.bash_profile
それから
open -a TextEdit.app ~/.bash_profile
追加
export Tomcat_HOME=/Library/Tomcat/Home
TextEditでドキュメントを保存すると完了です。
または、グラフィックアプリケーションで環境変数を表示したい場合は、.bash_profile
に次のコマンドを追加することもできます。 Mac OS Xでは、グラフィックアプリケーションは.bash_profile構成を継承しません。
launchctl setenv MYPATH myvar
~/.bashrc
にエクスポート文を入れることができます
Appleはこれを行う方法を変え続けているようです。そして、それはすべてコンテキストに関するものです。ある方法が別の方法で機能するとは限りません。 IDEで動作するために必要でしたが、ここで言及したbashファイル(Linuxスタイル)はどちらもそれを行いませんでした。 GUIアプリがこれを永続的に尊重する現在の方法は、WindowsおよびLinuxと比較して非常に複雑です!
簡単に言えば、大量のrunいXMLをplistファイルに書き込み、bashを実行しました。これは、「起動エージェント」ディレクトリ、つまり~/Library/LaunchAgents/my.startup.plist
に入ります。この件に関する別のStack Exchangeスレッドは次のとおりです。
これにより、完全なコピー&ペーストが可能になり、これを調整して特定の変数を設定できます。