[Shell Script] 쉘 스크립트 템플릿 파일에서 변수 확장 방법

 정보

  • 업무명     : 쉘 스크립트 템플릿 파일에서 변수 확장 방법

  • 작성자     : 이상호

  • 작성일     : 2020-01-19

  • 설   명      :

  • 수정이력 :

 

 내용

[개요]

  • 안녕하세요? 기상 연구 및 웹 개발을 담당하고 있는 해솔입니다.

  • 오늘은 템플릿 파일에서 변수 확장 방법을 소개드리고자 합니다.

 

etc-image-0

 

[특징]

  • 템플릿 파일을 이해하기 위해서 쉘 변수 확장이 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어 Tip

 

[기능]

  • 템플릿  (Template) 파일

  • eval 사용 방법

  • envsubst 사용 방법

 

[활용 자료]

  • 없음

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 작업 환경 구축

  • 소스 코드 작성 및 실행

  • 실행 결과 확인

 

[사용 OS]

  • Linux (CentOS v7.0)

  • VMware Workstation Pro v15.5

 

[사용 언어]

  • Bash Script

 

 소스 코드

[명세]

  • 작업 환경

    • Template.txt : 템플릿 파일

    • RunShell.sh : 소스 코드

 

etc-image-1

 

  • 템플릿 (Template) 파일

    • 쉘 변수 sName로 작성되어 있기 때문에 템플릿 (Template)처럼 다양한 변수 확장을 통해 사용 가능

 

root@linux220 /S/B/01.Template# cat Template.txt
Hello, ${sName}!
Bye, ${sName}!

 

  • eval을 사용 방법

    • Bash Script에서 선언된 변수는 eval를 통해 사용

    • 즉 echo의 경우 템플릿 파일 내용을 문자열로 인식하고 eval에서는 쉘 변수로 해석

    • 또한 "echo" 대신에 "<<<"을 사용 가능

 

#!/bin/bash

sName=Bash

# eval
echo "============== eval ==============="
eval "echo \"$(cat Template.txt)\""

# <<<
echo "============== <<< ==============="
eval "cat <<< \"$(cat Template.txt)\""

 

etc-image-2

 

  • envsubst 사용 방법

    • 환경 변수로 변경해주는 envsubst를 사용

 

#!/bin/bash

sName=Bash

# envsubst
echo "============== envsubst ==============="
cat Template.txt | sName=Bash envsubst

 

etc-image-3

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com