/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}
. 또한 두 가지 특수 표현식을 지원하며 @{HOME}
이를 사용자 항목에서 읽은 적절한 값으로 대체 @{SHELL}
합니다 .passwd
이 파일에서 변수를 정의하는 구문은 셸 스크립트의 구문과 다릅니다.
VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]
자세한 내용은 위에 링크된 문서를 참조하세요.