티스토리 뷰
[Shell Script] Shell 변수[펌]
Shell 변수 $0, $1, ...$N, $*, $@, $#
도움말
Shell Script에서 $0, $1, ...$N, $*, $@, $#은 특별한 의미를 갖는다. 이것들이 어떻게 사용되는지 간단한 예제를 통해 익힌다.
$0 : Script를 실행시킬 때 프로그램의 이름이 포함된 첫 번째 문자열이 저장된다.
$1, ...$N : argument들이 순서대로 저장된다. 위치 매개변수( Positional Parameter )라고 불리운다.
$* : 모든 위치 매개변수들로 구성된 단일 문자열
$@ : 자체로는 $*와 비슷하나 "$@"은 "$*"와 차이가 있다. "$@"은 "$1", ..."$N"과 같다.
$# : 위치 매개변수의 갯수가 저장된다.
$! : 가장 최근에 실행했던 백그라운드 PID를 표시
실행 예
arg.sh
#!/bin/sh
echo '$0' $0
echo '$1' $1
echo '$2' $2
echo '$*' $*
echo '$@' $@
echo '$#' $#
echo '$?' $?
echo '$$' $$
[study@mail variables]$ ./arg.sh a b c d e
$0 ./arg.sh
$1 a
$2 b
$* a b c d e
$@ a b c d e
$# 5
$? 0
$$ 9566
[study@mail variables]$ ./arg.sh 'a b c' d e
$0 ./arg.sh
$1 a b c
$2 d
$* a b c d e
$@ a b c d e
$# 3
$? 0
$$ 9567
[study@mail variables]$ ./arg.sh "a b c" d e
$0 ./arg.sh
$1 a b c
$2 d
$* a b c d e
$@ a b c d e
$# 3
$? 0
$$ 9568
[study@mail variables]$ ./arg.sh "a b c"d e
$0 ./arg.sh
$1 a b cd
$2 e
$* a b cd e
$@ a b cd e
$# 2
$? 0
$$ 12974
arg2.sh
#!/bin/sh
echo '$0' $0
echo '$1' $1
echo '$2' $2
echo '$*' $*
echo '$@' $@
echo '$#' $#
echo '$?' $?
echo '$$' $$
for i in $*
do echo item:$i
done
for i in $@
do echo item:$i
done
[study@mail variables]$ ./arg2.sh "a b c" d e
$0 ./arg2.sh
$1 a b c
$2 d
$* a b c d e
$@ a b c d e
$# 3
$? 0
$$ 12980
item:a
item:b
item:c
item:d
item:e
item:a
item:b
item:c
item:d
item:e
arg3.sh
#!/bin/sh
echo '$0' $0
echo '$1' $1
echo '$2' $2
echo '$*' $*
echo '$@' $@
echo '$#' $#
echo '$?' $?
echo '$$' $$
for i in "$*"
do echo item:$i
done
for i in "$@"
do echo item:$i
done
[study@mail variables]$ ./arg3.sh "a b c" d e
$0 ./arg3.sh
$1 a b c
$2 d
$* a b c d e
$@ a b c d e
$# 3
$? 0
$$ 12982
item:a b c d e
item:a b c
item:d
item:e
"$@"와 같이 따옴표를 사용하면 따옴표로 값들이 묶여져 처리된다.
--EOD--
출처 : http://www.itmoa.co.kr/gzboard.php?code=techqna&mode=gz_read&Page=5&no=222
'Programming > Shell Script' 카테고리의 다른 글
[Shell Script] 리눅스 쉘 파헤치기 -1. 쉘 소개 (0) | 2018.08.15 |
---|---|
[Shell Script] Backup Shell Script (0) | 2018.08.14 |
[Shell Script] 로그 포맷 생성 (0) | 2018.07.27 |
[Shell Script] 리눅스 명령어 실행 결과를 배열에 담기 (0) | 2018.07.27 |
[Shell Script] 리눅스 명령어 실행결과를 변수에 담기 (0) | 2018.07.27 |
- Total
- Today
- Yesterday
- 조던1 사틴
- linux bridge 설정
- 웹쉘 예방
- 이지 700 모브
- 조던1 사틴 블랙토 개봉기
- selinux 사용법
- 조던1 사틴 블랙토
- 파워쉘 문자열 포함
- end 응모
- selinux 정책설정
- 이지 부스트 700 모브
- CloudStack
- troijan
- 매치스패션 할인
- 이지 350 지브라
- 피파온라인4
- 나이키 코르테즈
- 리눅스 모니터링
- 웹쉘 해결
- 파워쉘 문자열
- 리눅스 hostname 변경
- 케니4
- 이지 부스트 700
- 웹쉘 탐지
- selinux 설명
- 나이키 켄드릭라마
- Java
- 배트멍 할인
- 파워쉘 문자열 포함 조건
- 리니지m 격수 팁
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |