env
명령어는 주로
- environment variable들을 확인하거나
- 특정 명령어 수행할 때 특정 environment variable을 지정해주는데 사용된다.
The
env
command allows youto
display your current environment or
run a specified command
in a changed environment.
개인적으로 env
를 많이 사용하는 경우는 #!
으로 시작하는 script의 shebang line 이다.
Shebang line이란
Script를 구성하는 commands을 해석 및 수행할 프로그램 (보통 interpreter. bash, zsh, python 등)을 "절대경로(absolute path)로 지정하는 첫 번째 line은 #!
으로 시작하며 이를 shebang line이라고 지칭함. 이때, 해당 프로그램의 경로는 시스템에 따라 다를 수 있으므로, 절대경로로 지정하는 대신, env
를 사용하여 해당 프로그램의 위치를 알아서 찾아 실행할 수 있도록 해놓으면 script file의 호환성이 향상됨. env
의 인수로 shell script의 command를 해석 및 수행할 프로그램을 지정하는 방식임.(자세한 내용은 아래를 참고).
- 단, 이 경우,
env
는 절대경로로 기재해야한다. :/usr/bin/env
가 주로 사용된다.
Syntax
env [-i|-][Name=Value]...[Command[ Argument ...]]
Command
가 지정되면, 해당Command
가env
에 의한 environment variable이 설정된 상황에서 수행된다.-i
flag가 설정된 경우, 현재의 environment variable들이 모두 무시(ignore)됨.env
뒤에 입력된Name=Value
등이 뒤에 놓이는Command
를 실행시키기 전 envrionment variable로 설정이 됨.env
로 설정된 environment는Command
가 수행되는 동안만 유효함.
env
만 입력된 경우, 현재의 environment variable들을Name=Value
들로 출력해줌.env Name
이라고 지정한 경우,Name
에 해당하는 environment variable만 보여줌.
Example
env TZ=MST7MDT data
위 경우, time zone에 해당하는 environment variable TZ
를 MST7MDT
로 변경하고 나서 data
커맨드가 수행됨.
env -i PATH=$PATH IDIR=/$HOME/include LIBDIR=/$HOME/lib make
위 경우, make
명령어가 오직 PATH
, IDIR
, LIBDIR
환경변수만 있는 환경에서 수행된다.
Shebang line
Script를 해석 (or 수행)할 프로그램을 지정하는 line인,
shebang line에 env
와 python
명령어를 다음 예제의 첫라인처럼 사용함.
#!/usr/bin/env python
print('Hello, Python')
bash에 대한 script라면 다음과 같음.
#!/usr/bin/env bash
echo "Hello, Bash!"
참고자료
https://www.ibm.com/docs/en/aix/7.2?topic=e-env-command
https://en.wikipedia.org/wiki/Shebang_%28Unix%29
'개발환경' 카테고리의 다른 글
[Env] PowerShell v7.3.5 (0) | 2023.06.28 |
---|---|
[Env] xterm: Font (0) | 2023.06.26 |
[Env] VSCode : Terminal Font 변경 (0) | 2023.06.21 |
[Env] Environment Variable (환경변수) (0) | 2023.06.20 |
[Env] Oh-My-Posh (0) | 2023.06.20 |