ioerror

printenv 사용법 및 옵션 - 환경 변수의 값을 출력하거나 전체 환경 변수 목록을 조회하는 명령어 본문

OS

printenv 사용법 및 옵션 - 환경 변수의 값을 출력하거나 전체 환경 변수 목록을 조회하는 명령어

반응형

printenv - Print Environment

printenv는 현재 셸 세션에 정의되어 있는 환경 변수(Environment Variable)의 이름과 값을 출력하는 명령어이다. 인자 없이 실행하면 시스템의 모든 환경 변수 목록을 표시하며, 특정 변수명을 지정하면 해당 변수의 값만을 출력한다. 시스템 설정 확인, 셸 스크립트 디버깅, 사용자 환경 구성 검증 등의 목적으로 다양한 UNIX 계열 OS에서 널리 사용된다.

1. 명령어 용도

  • 시스템에 설정된 전체 환경 변수 목록을 빠르게 확인하고자 할 때 사용된다.
  • PATH, USER, HOME 등 특정 환경 변수에 할당된 값을 조회하여 스크립트 동작 환경을 검증할 때 사용된다.
  • 셸 스크립트 내부에서 동적으로 시스템 환경 정보를 가져와 분기 처리를 하고자 할 때 활용된다.
Bash
 
# 특정 환경 변수(예: PATH)의 값만 확인하고자 할 때
$ printenv PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

# 스크립트 내에서 특정 변수가 정의되어 있는지 안전하게 검사할 때
$ printenv USER
username

2. 명령어 서식

Bash
 
printenv [옵션] [변수명 ...]

3. 명령어 옵션

  • printenv 명령어는 기능이 단순하여 지원하는 옵션이 매우 제한적이다.
옵션 설명 사용가능 OS 및 쉘
-0, --null 출력되는 각 환경 변수 항목의 끝을 줄바꿈(newline) 대신 null 문자(NUL)로 구분한다. GNU coreutils Linux
--help 명령어 사용법에 대한 도움말을 출력하고 종료한다. GNU coreutils Linux
--version 버전 정보를 출력하고 종료한다. GNU coreutils Linux
Bash
 
# 1. 인자 없이 실행하여 모든 환경 변수 목록 출력
$ printenv
SHELL=/bin/bash
USER=developer
PATH=/usr/local/bin:/usr/bin:/bin
pwd=/home/developer
# 결과 분석: 시스템에 등록된 모든 환경 변수가 '변수명=값' 형태로 줄바꿈되어 출력됨

# 2. 여러 개의 특정 변수 값을 동시에 조회
$ printenv USER SHELL
developer
/bin/bash
# 결과 분석: 지정한 변수들의 값이 입력된 순서대로 각각 한 줄씩 출력됨

# 3. -0 (null) 옵션을 사용한 안전한 데이터 처리 (파이프라인 연계)
$ printenv -0 | xargs -0 -n 1
SHELL=/bin/bash
USER=developer
PATH=/usr/local/bin:/usr/bin:/bin
pwd=/home/developer
# 결과 분석: 각 변수 출력이 null 문자로 구분되어, 값 내부에 공백이나 줄바꿈이 포함된 변수도 데이터가 깨지지 않고 안전하게 전달됨

4. 명령어 특이사항(유의사항)

  • env 명령어와의 차이점: env 명령어와 유사하지만, env는 환경 변수를 임시로 변경하여 새 명령어를 실행하는 기능이 주 목적인 반면, printenv는 순수하게 환경 변수를 출력하는 것에 특화되어 있다. 또한 특정 변수명을 인자로 직접 넘겼을 때 printenv는 해당 값만 출력하지만, env는 단독 변수명 인자를 인식하지 못한다.
  • 셸 내장 변수 미표시: printenv는 '환경 변수(Exported Variables)'만 출력하며, 셸 내부에서만 사용되는 '로컬 셸 변수(Local Shell Variables)'는 출력하지 않는다. 로컬 변수까지 모두 확인하려면 set 명령어를 사용해야 한다.
  • 존재하지 않는 변수 조회 시 반환 코드: 존재하지 않는 환경 변수명을 인자로 전달하여 조회하면 아무것도 출력하지 않으며, 종료 상태 코드 1을 반환한다. 이는 스크립트 작성 시 변수 존재 여부를 판별하는 조건문으로 유용하게 활용된다.

관련 명령어들

  • env: 환경 변수를 설정하여 명령을 실행하거나 전체 환경 변수를 출력한다.
  • set: 셸 변수와 환경 변수를 모두 출력하고 설정한다.
  • export: 로컬 셸 변수를 환경 변수로 내보낸다.

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

 

반응형
Comments