리눅스, 자료실, 성경검색, 추억의게임, 고전게임, 오락실게임, rootman, http://www.rootman.co.kr
* 3.234.214.113 *
| Home | Profile | Linux | 자료실 | zabbix | Mysql 5.6 | 갤러리 | 성경검색 | 해피니스 | 자유게시판 | 게시물검색 | L | O | R |    

 
[Shell] Positional Parameter(위치변수)
 작성자 : rootman
Date : 2009-02-17 11:29  |  Hit : 8,725  


최종업데이트 : 2012/01/18

Positional Parameter(위치변수)

$0 => 쉘 스크립트 명
$1 => 첫번째 인자
$2 => 두번째 인자
$* => 모든 인자
[email protected] => 모든 인자
$# => 모든 인자 개수
$? => 마지막 실행 return value
$$ => 현재 쉘 스크립트의 PID
$_ => 마지막 인자


(1) ${parameter}
- 실 변수 보호
- 인자가 9개 이상일 때, 중괄호를 해 주어야 합니다.

(2) ${#parameter}
parameter 값의 문자수

(3) ${#identifier[*]}
배열 identifier의 element 수

(4) ${parameter:-word}
parameter의 값이 NOT NULL이면 그 값을 출력 그렇지 않으면 word 값을 출력

(5) ${parameter:+word}
parameter의 값이 NOT NULL이면 그 값을 출력 그렇지 않으면 아무것도 출력하지 않음.

(6) ${parameter:=word}

-------------------------------------------------------------------------
#!/bin/sh
# FileName : argu.sh
echo "----------------------------------------------------";
echo "(1) 쉘 스크립트명 : $0 ";
echo "(2) 첫번째 인자 : $1 ";
echo "(3) 두번째 인자 : $2 ";
echo "(4) 모든 인자 : $* ";
echo "(5) 모든 인자 : [email protected] ";
echo "(6) 모든 인자 개수 : $# ";
echo "(7) 마지막 실행 return value : $? ";
echo "(8) 현재 쉘 스크립트의 PID : $$ ";
echo "(9) 마지막 인자 : $_ ";
echo "----------------------------------------------------";
exit 0;

[[email protected] ~/work]# sh argu.sh 하나 둘 셋 넷 다섯 여섯 일곱
----------------------------------------------------
(1) 쉘 스크립트명 : argu.sh
(2) 첫번째 인자 : 하나
(3) 두번째 인자 : 둘
(4) 모든 인자 : 하나 둘 셋 넷 다섯 여섯 일곱
(5) 모든 인자 : 하나 둘 셋 넷 다섯 여섯 일곱
(6) 모든 인자 개수 : 7
(7) 마지막 실행 return value : 0
(8) 현재 쉘 스크립트의 PID : 20099
(9) 마지막 인자 : (8) 현재 쉘 스크립트의 PID : 20099
----------------------------------------------------



---------------------------------------------------------------------------
문법 : ${parameter:-word}
설명 : 값이 있으면 parameter 변수 값 출력, 없으면 word 대치어 출력
예문 :
[[email protected] tmp]# TMP1=/home/chanho
[[email protected] tmp]# echo ${TMP1:-/home/notNull}
/home/chanho
[[email protected] tmp]# echo ${TMP99:-/home/notNull}
/home/notNull


---------------------------------------------------------------------------
문법 : ${parameter:+word}
설명 : 값이 있으면 word 대이처 출력, 없으면 parameter 변수 값 출력
예문 :
[[email protected] tmp]# TMP1=/home/chanho
[[email protected] tmp]# echo ${TMP1:+/home/notNull}
/home/notNull
[[email protected] tmp]# echo ${TMP99:+/home/notNull}
/home/chanho


---------------------------------------------------------------------------
문법 : ${parameter:+word}
설명 : 값이 있으면 parameter 값을 출력하고, 없으면 word로 할당
예문 :
[[email protected] tmp]# echo ${TMP1:=/home/assign}
/home/chanho

---------------------------------------------------------------------------
문법 : ${parameter:?word}
설명 : 값이 있으면 parameter 값을 출력하고, 없으면 word를 출력하고 exit

[[email protected] tmp]# echo ${TMP1:?/home/assign}
/home/chanho


 
 

Total. 25
번호 분류 제목 작성자 등록일 조회수
25 Shell [날짜] awk를 이용하여 unixtime의 시간 차 구하기 rootman 01-27 8221
24 Shell 쉘배열 (shell array) rootman 05-15 12755
23 Shell [날짜] date 함수로 unixtime의 시간 차 구하기 rootman 12-07 7098
22 Shell [squid] proxy 서버의 캐시 데이터 추출 rootman 03-24 6291
21 Shell [nagios] HP MSA60 P800 하드디스크 에러 검출 스크립트 rootman 06-26 10104
20 Shell [nagios] HP MSA60 P800 스카시 컨트롤러 펌웨어 체크 plugin rootman 04-16 10363
19 Shell Positional Parameter(위치변수) rootman 02-17 8726
18 Shell lynx를 통한 내부 링크와 외부 링크 return rootman 03-14 9460
17 Shell 입력 값은 값이 숫자인지 체크하기 rootman 11-13 8175
16 Shell [공유메모리] critical_create(): semget() failed 발생 시 rootman 01-30 8115
15 Shell [예제] 입력받은 문자열 대문자로 모두 변경하기 (1) rootman 09-12 7877
14 Shell 데이터 베이스 일괄(table 별도)로 전체 백업하기 (101) rootman 07-03 14198
13 Shell [최종수정 : 2005/09/12] 서버 상태 값 주기적으로 메일로 발송… 루트맨 01-27 11163
12 Shell mysql Database 테이블 모두 최적화하기 (7) rootman 03-21 15347
11 Shell [예제] 변수 할당과 치환 (17) rootman 10-14 8570
 1  2  
AND OR