본문 바로가기
공부하는 하스씨/Linux

Shell Script (2) - 환경변수와 지역변수, Borune Shell

by 박하스. 2008. 8. 27.
728x90
반응형

공통 환경변수 / 지역변수


- 환경변수 : 중요한 변수이고, subshell 에 상속된다.

$HOME : 홈디렉토리

$USER : UID

$PATH : 명령어 탐색 경로

$SHELL : 로그인 쉘

$MAIL : mailbox 디렉토리

$TERM : 터미널 유형

사용자 삽입 이미지

- 지역변수 : 사용자가 지정한 변수이고 subshell 에 상속안됨.

$$ : 쉘의 PID

$0 : 쉘스크립트 이름

$1..$n : 명령의 n번째 인수

$* : 명령어의 모든 인수 목록



★ Borune Shell ★


위치 : /bin/sh

- 시작시 자신의 홈디렉토리에서 .profile 을 찾음.

- .profile 의 유무에 관계없이 prompt 를 내보내고 사용자의 명령을 기다린다.

- shell은 대화형이지만, script는 비대화형(절차적)이다.

- sh 은 주로 관리자(root)가 사용한다. 작고 가볍기 때문에 관리에 적합한 쉘이다.


=====================================================================================================================

변수할당

$ Name=kangyw age=18         ☞  Name에 kangyw, age에 18을 집어넣음.

$ echo $Name is $age           ☞  변수의 내용 확인

$ Name="Kang Yong Woon"     ☞ 문자열 저장

사용자 삽입 이미지

=====================================================================================================================

변수접근

$ Name=Mike   ☞ 변수에 Mike 할당.

프롬프트($)와 변수($)를 잘 구분하자.


$Name    : 변수자체

${Name} : 변수 뒤에 문자를 추가해서 같이 표시 할 경우 사용한다.

사용자 삽입 이미지

${Name-word} : Name 변수에 값이 있으면 출력하고, 없으면 word를 출력한다. ( - : 생성)

${Name+word} : Name 변수에 값이 있으면 word를 출력한다. ( + : 갱신)

${Name=word} : Name 변수에 값이 없으면 Name에 word를 할당하고 이를 출력한다.

${Name?word} : Name 변수에 값이 없으면 word가 표준에러로 표시한다. 에러 msg로 주로 사용한다.

          < Name=Mike 값이 할당되어 있는 경우 >                    < name 값이 할당되지 않은 경우 >

사용자 삽입 이미지


< ? 사용은 에러 msg 출력에 사용한다 >

사용자 삽입 이미지

=====================================================================================================================

미리 정의된 환경변수

$IFS : 명령줄을 토큰화. 지정한 문자를 분리자로 사용한다. (명령어 인수1 인수2 / 분리자 : tab, space, 공백 등)

$PS1 : 프롬프트 저장. default '$'

$PS2 : 명령줄이 한줄이 넘어갈 경우, 다음 프롬프트 저장. default '>'

$SHENV : .profile 이 다른 디렉토리에 있을 경우 지정한 경로를 먼저 찾는다. default '$HOME'

사용자 삽입 이미지

=====================================================================================================================

미리 정의된 지역변수

$@ : 파라미터 목록

$# : 파라미터 개수

$? : 마지막 명령의 결과값 (결과값이 없으면 0, 있으면 0이 아닌 수)

$! : 백그라운드 프로세스 PID

$_


728x90
반응형

'공부하는 하스씨 > Linux' 카테고리의 다른 글

루트킷 #2  (0) 2008.10.11
루트킷 #1  (0) 2008.10.11
Shell Script (1) - 기본기 다지기  (0) 2008.08.27
공유 라이브러리로 컴파일 하기  (0) 2008.08.27
Makefile 참고 자료.  (0) 2008.08.26