/etc/environment
変数にさらにディレクトリを追加するように変更しましたPATH
。ただし、二重引用符で囲まれた内容は拡張されていないように見え、$PATH
シェル内のどのコマンドでも検索して/usr/bin/command-not-found
実行できます。
$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
PATH="$PATH:/home/user/technical/java/maven/bin"
JAVA_HOME="/home/user/technical/java/jdk7"
だからttyでは、
$ echo $PATH
$PATH:/home/user/technical/java/maven/bin
なぜ拡張が行われなかったのですか?
答え1
/etc/environment はシェルとは何の関係もありません。これは、bashなどの手段には依存しないことを意味します。拡張。
key=value
ここでは単純な割り当てのみを使用できます。
答え2
この/etc/environment
ファイルのソースはLinux-PAMプロジェクトそしてこれはシェルスクリプトではありません。シェルまたはPAMはどちらもこのファイルに対して変数拡張を実行しないため、変数値はファイルに書き込まれると割り当てられます。
/etc/environment
書類録音済みプロジェクト別:
この
/etc/environment
ファイルは、設定する環境変数を指定します。ファイルはNAME=VALUE
別の行にある単純なペアで構成する必要があります。モジュールはpam_env(8)
ファイルの後にファイルを読み込みますpam_env.conf
。
この/etc/security/pam_env.conf
ファイルはシェルスクリプトではありませんが、する他の変数を参照するための構文をサポートしています${variable}
。また、2つの特別な式をサポートし、@{HOME}
それをユーザーアイテムから読み取った適切な値に置き換え@{SHELL}
ます。passwd
このファイルで変数を定義する構文は、シェルスクリプトの構文とは異なります。
VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]
詳細については、上記のリンクを参照してください。