상세 컨텐츠

본문 제목

[shell script] 위치 매개 변수(Positional Parameters)

shell script

by 빨간눈동자 2021. 10. 3. 15:00

본문

반응형

$0, $1, $*, $@, $# 로 사용해도 되지만, 몇가지 예외가 있기에 {}를 사용하는 것이 좋다. 

${0} 실행된 스크립트 이름
${1} ${1} ${2} ${3}.... 인자 순서대로 번호가 부여된다. 
${*} 전체 인자 값
${@} 전체 인자 값( 동일하지만 쌍따옴표로 변수를 감싸면 다른 결과 나옴)
${#} 매개 변수의 총 개수

 

아래 예제를 통해 사용법을 알아보자 

#!/bin/bash


OLD_IFS=IFS
IFS='|'

echo "실행된 스크립트 이름: ${0}"

echo "첫번째 인자: ${1}"

echo "두번째 인자: ${2}"

echo "세번째 인자: ${3}"

echo "전체 인자 값 IFS 변수의 영향을 받음: ($*)"

echo "전체 인자 값 IFS 변수의 영향을 받지 않음: ($@)"

echo "매개 변수의 총 개수: ${#}"

${*} 와 ${@} 은 전달 받은 인자를 모두 출력한다. 

차이점은 확인하기 위해서는 IFS 변수에 '|' 구분자를 할당하고 결과를 확인해 보면 쉽게 알 수 있다. 

위의 결과를 보면,

${*}은 인자 사이에 구분자 '|' 가 포함된 것을 알 수 있다. 

반면 ${@}은 IFS 변수(구분자)에 영향을 받지 않는다. 

반응형

'shell script' 카테고리의 다른 글

shell script로 checkbox 표현하기  (0) 2024.06.25
[shell script] for문  (0) 2021.10.03
[shell script] 배열(Array)  (0) 2021.10.03
[shell script] 사용자 입력 받기 (read)  (0) 2021.10.02
[shell script] 주석 처리  (0) 2021.09.29

관련글 더보기