강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

레벨257-2 : 쉘스크립트 내에서의 set명령어 사용 예

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

레벨257-2 : 쉘스크립트 내에서의 set명령어 사용

 

앞에서 설명 드렸듯이 set명령어는 독립적으로 사용되는 명령어라기 보다는 쉘스크립트 내에서 명령행 위치 인자를 설정하는 명령어라고 하였습니다.  따라서 필자는 set명령어의 정확하고 실무적인 사용 예를 위하여 간단한 쉘스크립트를 하나 만들어 보았습니다.  스크립트는 set명령어의 사용방법과 용도에 대한 설명자료로 만든 것이므로 set명령어의 용도와 목적이라는 관점으로 보시기 바랍니다.

 

아래는 스크립트의 내용입니다.

 

[root@su249 ~]# cat set.sh

#!/bin/bash

 

# script for set command

# Usage : set_SCRIPT NAME TEL JOB

 

echo

echo

echo The name of this script : $0

echo The name is : $1

echo The telephone number is : $2

echo The job is : $3

 

set PARKSUNGSOO 0517778888 PROGRAMMER

 

echo The name of this script : $0

echo The name is : $1

echo The telephone number is : $2

echo The job is : $3

[root@su249 ~]#

 

 

스크립트의 사용형식은 “ set.sh 이름 전화번호 직업 같습니다.  위의 스크립트의 내용을 하나씩 설명 드리면 다음과 같습니다.

 

echo The name of this script : $0

 

행에서 $0 스크립트의 이름으로 대체됩니다. 행의 출력결과는 “The name of this script : set.sh” 됩니다.

 

echo The name is : $1

 

행에서 $1 명령행에서 첫번째로 주어진 인자로 대체됩니다.  행의 출력결과는 “The name is : 첫번째인자 같은 형식이 됩니다.

 

echo The telephone number is : $2

 

행에서 $2 명령행에서 두번째로 주어진 인자로 대체됩니다.  행의 출력결과는 “The telephone number is : 두번째인자 같은 형식이 됩니다.

 

 

echo The job is : $3

 

행에서 $3 명령행에서 세번째로 주어진 인자로 대체됩니다.  행의 출력결과는 “The job is : 세번째인자 같은 형식이 됩니다.

 

 

set PARKSUNGSOO 0517778888 PROGRAMMER

 

행에서는 set명령어가 사용되었으며 PARKSUNGSOO라는 문자열은 첫번째 인자를 의미하는 $1 할당이 되고, 0517778888 두번째 인자를 의미하는 $2 할당이 됩니다. 그리고 PROGRAMMER 세번째 인자를 의미하는 $3 각각 할당됩니다.  이전에 할당되었던 값들은 모두 제거되고 새로운 값들로 $1, $2, $3 각각 할당하게 됩니다.  이것이 set명령어의 역할입니다.

 

그리고 아래는 set명령어에 의해서 새로 할당된 $1, $2, $3 변경된 값들을 출력하기 위해 앞의 경우와 같은 방식으로 각각 출력한 것입니다.

 

 

echo The name of this script : $0

 

앞의 경우와 동일하게 $0 스크립트의 이름으로 대체됩니다. 행의 출력결과는 “The name of this script : set.sh” 됩니다.

 

 

echo The name is : $1

 

행에서 $1 set명령어에 의해 PARKSUNGSOO 새롭게 설정 됩니다.  이전에 $1 저장되었던 값은 제거되고 set명령어의 첫번째 인자인 PARKSUNGSOO 새롭게 설정된 것입니다.  따라서 행은 “The name is : PARKSUNGSOO” 출력 됩니다.

 

 

echo The telephone number is : $2

 

행에서 $2 set명령어에 의해 0517778888 새롭게 설정 됩니다.  , 이전에 $2 저장되었던 값은 제거되고 set명령어의 두번째 인자인 0517778888으로 새롭게 설정된 것입니다.  따라서 행은 “The telephone number is : 0517778888”으로 출력 됩니다.

 

 

echo The job is : $3

 

행에서 $3 set명령어에 의해 PROGRAMMER 새롭게 설정 됩니다.  , 이전에 $3 저장되었던 값은 제거되고 set명령어의 세번째 인자인 PROGRAMMER 으로 새롭게 설정된 것입니다.  따라서 행은 “The job is : PROGRAMMER”으로 출력 됩니다.

 

 

다음은 스크립트를 실제로 사용한 예입니다.  아래와 같이 “./set.sh JUNGWOOYOUNG 0211113333 SE” 실행한 결과를 나타낸 것입니다.

 

[root@su249 ~]# ./set.sh JUNGWOOYOUNG 0211113333 SE

 

 

The name of this script : ./set.sh

The name is : JUNGWOOYOUNG

The telephone number is : 0211113333

The job is : SE

The name of this script : ./set.sh

The name is : PARKSUNGSOO

The telephone number is : 0517778888

The job is : PROGRAMMER

[root@su249 ~]#

 

위의 스크립트가 실행이 되면 스크립트이름인 set.sh $0 자동으로 할당이 됩니다.  그리고 첫번째 인자인 JUNGWOOYOUNG $1 할당되고 두번째 인자인  0211113333 $2 할당이 됩니다.  그리고 세번째 인자인  SE $3 자동할당이 됩니다.

 

그리고 위의 결과들을 하나씩 차례대로 설명하면 다음과 같습니다.

 

 

The name of this script : set.sh

 

말씀드린바와 같이 $0 스크립트의 이름인 set_SCRIPT 저장되어 위와 같이 출력된 것입니다.

 

 

The name is : JUNGWOOYOUNG

 

$1에는 명령행의 첫번째인자인 PARKSUNGSOO 저장되어 위와 같이 출력된 것입니다.

 

 

The telephone number is : 0211113333

 

$2에는 명령행의 두번째인자인 02111222 저장되어 위와 같이 출력된 것입니다.

 

The job is : SE

 

$3에는 명령행의 세번째인자인 SE 저장되어 위와 같이 출력된 것입니다.

 

 

다음은 스크립트 내에서 “set JUNGWOOYOUNG 0517778888 PROGRAMMER” 실행이 후의 출력값들입니다.

 

 

The name of this script : set.sh

 

$0 값에는 변화 없이 스크립트의 이름이 출력된 것입니다.

 

 

The name is : PARKSUNGSOO

 

set명령어의 실행결과로 $1 저장되어 있던 JUNGWOOYOUNG 제거되고 PARKSUNGSOO라는 set명령어의 첫번째 인자가 할당되어 위와 같이 출력된 것입니다.

 

 

The telephone number is : 0517778888

 

set명령어의 실행결과로 $2 저장되어 있던 0211113333 제거되고 0517778888이라는 set명령어의 두번째 인자가 할당되어 위와 같이 출력된 것입니다.

 

 

The job is : PROGRAMMER

 

set명령어의 실행결과로 $3 저장되어 있던 SE 제거되고 PROGRAMMER 라는 set명령어의 세번째 인자가 할당되어 위와 같이 출력된 것입니다.

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,051 명
  • 현재 강좌수 :  35,896 개
  • 현재 접속자 :  212 명