레벨237-3 : env로 쉘변수에 값 할당하여 변수리스트 출력하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,396 조회
- 0 추천
- 목록
본문
레벨237-3 : env로 쉘변수에 값 할당하여 변수리스트 출력하기
지금까지의 예를 보신 바와 같이 env는 쉘변수 리스트를 확인하는 용도로 주로 사용됩니다. 하지만, env를 이용하여 쉘변수에 새로운 값을 할당하거나 변경할 수 있다는 것을 알고 계신분들은 많지 않습니다.
예를 들어 HISTSIZE라는 변수에는 사용자가 사용한 명령어를 저장할 때에 몇 개까지 저장할 것인가를 결정하는 숫자가 저장되어 있습니다. 아래 예를 보시는 바와 같이 기본값으로는 1000이라는 값이 저장되어 있습니다.
[root@su249 test]# echo $HISTSIZE 1000 [root@su249 test]# |
그리고 다음 예와 같이 env를 이용하여 HISTSIZE라는 변수에 2000이라는 값을 할당하여 출력하고 있습니다.
[root@su249 test]# env HISTSIZE=2000 HOSTNAME=su249.com TERM=vt100 SHELL=/bin/bash HISTSIZE=2000
SSH_CLIENT=192.168.0.150 2492 22 QTDIR= OLDPWD=/root QTINC=/include SSH_TTY=/dev/pts/4 USER=root LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33; CCACHE_DIR=/var/cache/ccache SSH_AUTH_SOCK=/tmp/ssh-DHqvDW2752/agent.2752 MAIL=/var/spool/mail/root PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin: /sbin:/bin:/usr/sbin:/usr/bin:/root/bin INPUTRC=/etc/inputrc PWD=/root/test CCACHE_UMASK=002 LANG=ko_KR.eucKR SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SHLVL=1 HOME=/root SDL_AUDIODRIVER=esd id=bible LOGNAME=root QTLIB=/lib CVS_RSH=ssh SSH_CONNECTION=192.168.0.150 2492 192.168.0.249 22 LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/bin/env [root@su249 test]# |
그렇지만 다시 env를 아무런 인자 없이 그냥 실행하면 원래 초기값으로 되돌려 진다는 것을 알 수 있습니다.
[root@su249 test]# env HOSTNAME=su249.com TERM=vt100 SHELL=/bin/bash HISTSIZE=1000
SSH_CLIENT=192.168.0.150 2492 22 QTDIR= OLDPWD=/root QTINC=/include SSH_TTY=/dev/pts/4 USER=root LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40; CCACHE_DIR=/var/cache/ccache SSH_AUTH_SOCK=/tmp/ssh-DHqvDW2752/agent.2752 MAIL=/var/spool/mail/root PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin: /sbin:/bin:/usr/sbin:/usr/bin:/root/bin INPUTRC=/etc/inputrc PWD=/root/test CCACHE_UMASK=002 LANG=ko_KR.eucKR SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SHLVL=1 HOME=/root SDL_AUDIODRIVER=esd id=bible LOGNAME=root QTLIB=/lib CVS_RSH=ssh SSH_CONNECTION=192.168.0.150 2492 192.168.0.249 22 LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/bin/env [root@su249 test]# |
그리고 참고로 아래 예와 같이env로 하나의 변수에 값을 할당할 수도 있지만 2개 이상의 변수에 값을 할당하여 변수리스트를 출력할 수도 있습니다.
[root@su249 test]# env HISTSIZE=2000 HOME=/tmp |
이상과 같이 env는 변수에 값을 할당하고 변수리스트를 출력(Set each NAME to VALUE in the environment and run COMMAND.)하는 명령어라는 것을 알 수 있습니다.
관련자료
-
이전
-
다음