본문 바로가기
IT/리눅스 쉘 스크립트

리눅스 쉘스크립트 예제와 함께하는 매개변수의 이해 - 인수 전달

by 꾸꾸웍스 2023. 1. 4.
반응형

쉘스크립트 파라미터 인수 전달 썸네일
쉘스크립트 파라미터 인수 전달

 

쉘스크립트의 특수 내장 변수인 매개변수에 해당하는 정의와 쉘스크립트 파라미터 전달하기 위한 규칙과 활용 예제를 살펴보고 직접 실습해보며 매개변수에 대한 이해를 돕는 내용입니다. 인수 전달이 되는 과정과 파라미터의 의미정도를 외우고 내 것으로 만든다면 쉘스크립트 매개변수에 대한 내용은 쉽게 응용하거나 실무에 잘 이용할 수 있습니다.

 

 

※ 목차 구성
1) 쉘스크립트 매개변수란?
2) 쉘스크립트 인수 전달 규칙
3) 쉘스크립트 매개변수 예제
4) 쉘스크립트 매개변수 활용

 

 

 

쉘스크립트 매개변수란?

매개변수

리눅스에서 사용하는 쉘스크립트는 사용자가 직접 작성하여 짜인 실행 프로그램파일입니다. 실행권한이 있어야 실행되는 .sh 확장자의 쉘스크립트는 특수 내장 변수로서 특수변수라고 불리는 매개변수를 이용할 수 있으며 positional parameter를 제공합니다.

 

 

파라미터 유무 차이 사진
파라미터

 

위 사진과 같이 test_script 실행파일과 함께 숫자가 붙은 것을 모두 파라미터라고 합니다. 각 파라미터에는 의미와 역할이 있습니다. 즉, 특수 내장 변수인 매개변수는 쉘 스크립트를 수행할 때 사용자가 전달하는 변수나 함수의 인수를 전달하는 데 사용됩니다.

 

 

반응형

 

 

쉘스크립트 인수 전달 규칙

파라미터 위치의 의미
파라미터 위치의 의미

 

쉘스크립트 매개변수 선언의 기준은 공백(띄어쓰기)을 기준으로 파라미터를 구분하게 되며 각 파라미터는 원하는 만큼 그 수를 정하여 나열할 수 있습니다.

 

 

쉘스크립트 파라미터 의미

쉘스크립트 파라미터 파라미터 의미
$0 쉘스크립트 이름
$1 쉘스크립트 실행 시 사용한 첫번째 인자
$2 쉘스크립트 실행 시 사용한 두번째 인자
$3 쉘스크립트 실행 시 사용한 세번째 인자
$* 쉘스크립트 실행 시 사용한 전체 인자 값
$@ 쉘 스크립트 실행시 사용한 전체 인자 값
$# 쉘스크립트 실행 시 사용한 매개변수 총 개수
$$ 현재 실행한 스크립트 프로세스 아이디(PID)
$? 마지막으로 실행되었던 종료 인자(0이면 정상 종료)
$! 이전에 실행한 명령의 프로세스 아이디(PID)

 

 

실행할 쉘스크립트 내 파라미터를 호출하는 내용이 없다면 쉘스크립트 실행 시 인자값을 주어도 실행되지 않으며 파라미터는 공백(띄어쓰기포함)으로 구분됩니다. 아래 예시는 똑같은 쉘스크립트 매개변수를 선언하였지만 test_script.sh 파일 내 매개변수 내용이 없는 경우와 있는 경우를 나타낸 예시입니다.

 

root@server # cat test_script.sh
#!/bin/bash

echo "Hello"

root@server # ./test_script.sh my name is kim
Hello

-----------------------------------------------
root@server # cat test_script.sh
#!/bin/bash

echo "Hello $1 $2 $3 $4"

root@server # ./test_script.sh my name is
Hello my name is kim

 

 

 

 

쉘스크립트 매개변수 예제

쉘스크립트 매개변수에 대한 내용을 쉽게 이해하기 위해 실습을 진행하는 내용입니다. 직접 실행파일을 만들어 쉘스크립트 내용을 아래 예제와 똑같이 작성하고 파라미터를 사용자 임의대로 선언하여 실습해보는 것이 쉘스크립트 매개변수의 이해하기 수월해집니다.

 

 

script.sh 파일 만들기

root@server # touch script.sh

 

script.sh 실행 권한 부여하기

root@server # chmod 755 script.sh

 

vim편집기를 이용하여 내용 작성하기

root@server # vim script

 

root@server cat script.sh
echo "argument1: $1"
echo "argument2: $2"
echo "argument3: $3"
echo "This file name: $0"
echo "Total argument number: $#"
echo "This file PID: $$"
echo "Total argument: $*"

 

 

▼매개변수를 직접 입력하여 실행하기

root@server # ./script.sh red blue yellow
argument1: red
argument2: blue
argument3: yellow
This file name: ./script.sh
Total argument number: 3
This file PID: 196511
Total argument: red blue yellow

 

 

 

 

쉘스크립트 매개변수 활용

쉘스크립트를 작성하여 사용하면서 매개변수를 응용할 일은 많지만 일반적으로 현업에서 사용할 때는 서비스를 시작, 중지, 상태를 보는 쉘스크립트를 많이 사용하거나 특정 사용자가 실행해야 되는 서비스들이 존재합니다.

 

아래예시는 쉘스크립트 실행파일인 $0을 제외하고 반드시 1개의 파라미터를 사용해야 되는데 실수로 파라미터를 선언하지 않거나 2개의 파라미터를 선언하였을 때 실행프로그램 종료 인자가 '1'을 반환하며 종료하는 쉘스크립트 예시입니다.

 

root@server # cat script.sh
#!/bin/bash

if [ $# -ne 1 ]; then
	echo "argument error"
    exit 1
if

echo "Hello"

root@server # ./script.sh
argument error

root@server # ./script.sh a
Hello

root@server # ./script.sh a a
argument error

 

 

아래 예시는 위 예시를 포함하여 첫 번째 파라미터값이 특정 문자가 아닐 경우 쉘스크립트를 종료인자 1을 반환하여 종료하게 하는 쉘스크립트 예시입니다. 이 예시는 특정 파라미터값을 오타 없이 정확히 입력해야 될 때 유용하게 사용됩니다.

 

쉘 스크립트 동작 방식은 첫 번째 쉘스크립트 파라미터 값을 입력하였을 때 case문을 활용하여 start, stop, status이면 원하는 명령을 실행하고 start, stop, status가 아닐 경우 에러메시지와 함께 종료인자 1을 반환하여 쉘스크립트를 종료합니다.

 

root@server # cat script.sh
#!/bin/bash

if [ $# -ne 1 ]; then
	echo "argument error"
    exit 1
if

case $1 in
	start) echo "start";;
    stop) echo "stop";;
    status) echo "status";;
    *) echo "argument error"
       exit 1;;
esac

root@server # ./script.sh
argument error

root@server # ./script.sh a
argument error

root@server # ./script.sh a a
argument error

root@server # ./script.sh stary
argument error

root@server # ./script.sh start
start

root@server # ./script.sh status
status

 

 

 

예시에 사용된 if문 사용법 및 예제와 case문 사용법 및 예제에 대한 추가 내용은 아래 포스팅을 참고해 주세요

 

 

!! if문 사용법 및 예제(클릭)!!

 

[shell script] 쉘 스크립트 기초 #5 - 조건문 if문 옵션 사용법 및 총정리

[shell script] 쉘 스크립트 기초 #5 - 조건문 if문 옵션 사용법 및 총정리 ※ 목차 1. 쉘 스크립트(shell script) if문 문자열 비교 옵션 2. 쉘 스크립트(shell script) if문 산술 비교 옵션 3. 쉘 스크립트(shell scr

rhrhth23.tistory.com

 

!! case문 사용법 및 예제(클릭)!!

 

[shell script] 쉘 스크립트 기초 #7 - 제어문 case문 설명 및 예제

[shell script] 쉘 스크립트 기초 #7 - 제어문 case문 설명 및 예제 ※ 목차 1. 쉘 스크립트 case문 설명 2. 쉘 스크립트 case문 문법 3. 쉘 스크립트 case문 기본 예제 4. 쉘 스크립트 case문 예제 응용 1. 쉘 스

rhrhth23.tistory.com

 

 

 

 

반응형
그리드형

댓글