これは私を苛立たせています。私はいくつかの提案(すべて異なるファイルと構文を使用)を見ましたが、どれもうまくいきませんでした。
特定のユーザーの環境変数を設定するにはどうすればよいですか?私はdebian squeezeをしています。 ABC = "123"にするためにファイルに入力する必要がある正確な構文は何ですか?
シェルの初期化ファイルに宣言を配置する必要があります。
Bash、ash、kshまたはその他のBourneスタイルのシェルを使用している場合は、次を追加できます。
ABC="123"; export ABC
.profile
ファイル(${HOME}/.profile
)内。これは、ほとんどのUnixインストール、特にDebianのデフォルトの状況です。
ログインシェルがbashの場合は、代わりに.bash_profile
(${HOME}/.bash_profile
)または.bash_login
を使用できます。
注:これらのファイルのいずれかが存在し、ログインシェルがbashの場合、ssh経由またはテキストコンソールでログインすると.profile
は読み取られませんが、代わりに読み取られる可能性があります.bash_profile
GUIからログインした場合。また、.bash_profile
がない場合は、.bashrc
を使用します。
ログインシェルとしてzshを設定している場合は、~/.zprofile
ではなく~/.profile
を使用してください。
Tcshを使用している場合は、
setenv ABC "123"
.login
ファイル(${HOME}/.login
)
別のシェルを使用している場合は、シェルのマニュアルで環境変数の定義方法とシェルの起動時に実行されるファイルを確認してください。
環境変数を設定するには、/etc/environment
ファイルを使用します。次に、/etc/environment
ファイル内に次の行を追加します。
ABC="123"
これで[〜#〜] abc [〜#〜]変数にすべてのユーザーセッションからアクセスできるようになります。変数の出力をテストするには、まずコマンドを使用して環境変数を更新します
source /etc/environment
echo $ABC
を実行します。
これは、ほとんどすべてのシェルで使用できる一般的な手順です。いずれの場合も、ユーザーが通常どのシェルでログインするかを知る必要があります。
path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
Shell="$(basename -- "$path")"
次に、このシェルが通常読み取るドットファイルを把握する必要があります。
man $Shell
うまくいくかもしれないショートカットは、シェル名を含むそれらのドットファイルをリストすることです:
ls ~/.*${Shell}*
ログイン中にファイルの1つが実際に読み取られたかどうかを確認する場合は、次のように、それぞれにファイル名を出力するだけです。
echo .bashrc
ログインすると、どのファイルが読み取られているかがわかり、変更するファイルを決定できます。 echo "$0"
の値はシェルがドットファイルを処理する方法に依存し、誤解を招く可能性があるため、$0
または類似のものを使用しないでください。
変数を「永続的に」宣言する場合、これはセッションにのみ拡張されることに注意してください。セッションなしで変数の値にアクセスする方法はないため、セッション外では意味がありません。 「読み取り専用」を意味する場合、これはシェルに依存し、Bashでは次のように使用できます。
declare -r VAR
すでに値がある場合、または
declare -r VAR=value
同時に割り当てます。すべてのシェルにこの機能があるわけではありません。
ほとんどのシェルで変数を宣言するには、変数名([A-Za-z_][A-Za-z0-9_]*
)を使用し、その後に等号(およびスペースなしを続けます)等号)、次に値(値が単純な[A-Za-z0-9_]+
でない限り、引用符で囲むことが望ましい)。例えば:
name="John Doe"
ip=127.0.0.1
HORRIBLE=1
エクスポートを使用します。
export ABC="123"
設定されているかどうかを確認するには、
env
および/または
env | grep ABC
恒久的に追加するには、これを~/.bashrc
ファイルに追加します。
export ABC="123"
正確なコマンドは次のとおりです。
echo 'export ABC = "123"' >> ~/.profile
私にとってうまくいった最善の方法は、BASHシェルで.bashrcファイルを変更することです。
たとえば、これを使用します。
この行を追加します。
export <VARIABLE> = "<ANY PATH/VALUE you want>"
例:export HOME = "/home/user/"
""
の使用は機能せず、bashrcファイルはソース中にエラーを報告するため、' '
を使用することを忘れないでください。
現在のセッションでそれを調達します。
/ etc/environmentファイルも変更しようとしましたが、新しい環境変数を作成できませんでした。ソースを指定すると、定義された変数が見つからないというエラーが表示されました。