정보

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

    • 작성자     : 이상호

    • 작성일     : 2020-01-19

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

     

     

    [특징]

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

     

    [기능]

    • 템플릿  (Template) 파일

    • eval 사용 방법

    • envsubst 사용 방법

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 작업 환경 구축

    • 소스 코드 작성 및 실행

    • 실행 결과 확인

     

    [사용 OS]

    • Linux (CentOS v7.0)

    • VMware Workstation Pro v15.5

     

    [사용 언어]

    • Bash Script

     

     소스 코드

    [명세]

    • 작업 환경

      • Template.txt : 템플릿 파일

      • RunShell.sh : 소스 코드

     

     

    • 템플릿 (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)\""

     

     

    • envsubst 사용 방법

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

     

    #!/bin/bash
    
    sName=Bash
    
    # envsubst
    echo "============== envsubst ==============="
    cat Template.txt | sName=Bash envsubst

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기