$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로 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 |