공통 환경변수 / 지역변수
- 환경변수 : 중요한 변수이고, 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
$_
'공부하는 하스씨 > 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 |