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

쉘프로그래밍강좌059 : 쉘스크립트 내에서의 set명령어 사용 예

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

쉘프로그래밍강좌059 : 쉘스크립트 내에서의 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 PARKSUNGSOO 0211113333 SE”를 실행한 결과를 나타낸 것입니다.

 

 

 

 

 

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

 

 

The name of this script : ./set.sh

The name is :

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에 자동으로 할당이 됩니다.

 

 

 

  그리고 첫번째 인자인 PARKSUNGSOO $1에 할당되고 두번째 인자인  0211113333 $2에 할당이 됩니다.

 

 

 

  그리고 세번째 인자인  SE $3에 자동할당이 됩니다.

 

 

 

 

 

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

 

 

 

 

 

 

The name of this script : set.sh

 

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

 

 

 

 

 

 

The name is : PARKSUNGSOO

 

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

 

 

 

 

 

 

The telephone number is : 0211113333

 

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

 

 

 

 

 

The job is : SE

 

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

 

 

 

 

 

 

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

 

 

 

 

 

 

The name of this script : set.sh

 

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

 

 

 

 

 

 

The name is : PARKSUNGSOO

 

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

 

 

 

 

 

 

The telephone number is : 0517778888

 

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

 

 

 

 

 

 

The job is : PROGRAMMER

 

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

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  87 명