Bash: 변수 심화

특수 매개변수

함수의 매개변수는 $1, $2, …로 사용할 수 있었다. 이는 매개변수의 순서를 나타내기 때문에 위치 매개변수라고 한다. 이외에도 특수 매개변수가 존재한다.

$#

$#은 스크립트나 함수의 매개변수 개수를 나타내는 특수 매개변수이다.

스크립트에서 $# 실습

  1. special_param.sh 스크립트 파일에 다음 같이 작성해보자.

    #!/bin/bash
    
    echo "number of input param: $#"
    
  2. 스크립트 실행 권한을 추가하고 다양한 인자를 입력해보자.

    image.png

    없을 때는 0, 있으면 공백을 기준으로 잘라서 매개변수 개수에 따라 인자의 개수를 출력하는 것을 확인할 수 있다.

    image.png

    이렇게 큰따옴표로 묶으면 하나의 인자로 취급함을 알아볼 수 있다.

함수에서 $# 실습

  1. special_param.sh를 다음과 같이 수정해보자.

    #!/bin/bash
    
    function print_num_params()
    {
    	echo "number of params: $#"
    }
    
    print_num_params abc
    print_num_params 1
    print_num_params 1 2 3 4
    print_num_params "1 2 3 4"
    
  2. 결과를 확인해보면 스크립트에서 사용했을 때와 똑같이 동작함을 알 수 있다.

    image.png

$0

실행 중인 스크립트 파일의 이름을 나타내는 특수 매개변수이다. ($0은 함수에서 사용할 수 없다.)

실습