터미널에서 매일 비슷한 텍스트를 반복해서 작성하고 있다면, .txt 템플릿 스크립트를 만들어 작업 과정을 간소화하고 시간을 절약해 보는 건 어떨까요? 흥미롭게 들리시나요? 그렇다면 터미널을 열고 선호하는 텍스트 편집기를 실행한 뒤, 지금 바로 시작해 봅시다!
새 템플릿 스크립트 만들기
편하신 방법대로 새 bash 스크립트 파일을 생성합니다. 여기서는 홈 디렉터리의 "Scripts" 폴더에 nano 에디터를 사용해 "MTE_template.sh"라는 이름의 파일을 만들었습니다:
nano MTE_template.sh
매개변수 정의하기
파일을 선호하는 편집기로 연 뒤, 가장 상단에 bash 스크립트임을 정의하는 기본 시작 줄을 입력합니다:
#!/bin/sh
코드를 깔끔하고 읽기 쉽게 유지하려면, 주석 처리된 줄에 앞으로 작성할 내용의 제목을 적어두는 것이 좋습니다.
여기서 "앞으로 작성할 내용"이란 템플릿에 정의할 여러 매개변수를 의미합니다. 템플릿 스크립트가 완성되면 이 매개변수들을 스크립트에 전달하여 텍스트에 삽입할 수 있습니다.
주석 처리된 줄에 "Our parameters(우리의 매개변수)"라는 제목을 입력했습니다:
#Our parameters
다음으로 "SITE", "AUTHOR", "CONTACT"라는 세 개의 매개변수를 번호가 붙은 변수에 매핑하여 정의했습니다:
SITE=$1 AUTHOR=$2 CONTACT=$3
같은 방식으로 다른 매개변수를 정의하거나 더 많은 매개변수를 추가할 수도 있습니다.
템플릿 만들기
템플릿 매개변수가 준비되었으니, 이제 실제 텍스트 템플릿을 만들 차례입니다.
앞서와 마찬가지로 주석 처리된 제목 줄로 시작합니다:
#Template
템플릿에 추가하는 내용은 다음과 같습니다:
- 템플릿 본문을 두 줄 사이에 "샌드위치"처럼 감쌉니다.
- 첫 번째 줄의
cat << EOF는 "이후의 모든 내용(즉, 실제 템플릿)은EOF가 나타날 때까지 하나의 입력으로 취급한다"는 의미입니다. - 두 번째 줄의
EOF는cat명령의 입력 루프를 종료하고 템플릿을 끝내는 일종의 "종료 코드" 역할을 합니다.
cat << EOF Welcome to a Bash-generated TXT template for $SITE. Created by $AUTHOR. Contact me at $CONTACT. EOF
좀 더 실용적인 템플릿으로는 이메일 형식을 들 수 있습니다. "$NAME"과 "$TASK" 매개변수를 정의한 후 다음과 같은 이메일 템플릿을 만들 수 있습니다:
cat << EOF Hello $NAME, I just wanted to get back to you regarding $TASK. Would you be so kind as to update me on any changes? Best regards, My Name EOF
작성을 마쳤다면 편집 내용을 저장(Ctrl + O)하고 프로그램을 종료(Ctrl + X)합니다.
다음으로 아래 명령어로 스크립트에 실행 권한을 부여합니다:
chmod u+x MTE_template.sh
이렇게 하면 스크립트 이름만으로 새 문서를 손쉽게 생성할 수 있습니다.
테스트 실행
정의한 매개변수와 함께 스크립트를 실행해 봅니다. 테스트 실행 결과는 다음과 같습니다:
./MTE_template.sh Make_Tech_Easier Ody mymail@mailserver.com
명령어의 첫 부분은 스크립트 이름이며, "Make_Tech_Easier"가 첫 번째 매개변수, "Ody"가 두 번째, "mymail@mailserver.com"이 세 번째 매개변수입니다.
참고로 "make tech easier"라는 단어들을 하나로 묶기 위해 밑줄(_)을 사용했습니다. 공백을 사용하고 싶다면 따옴표로 묶어주세요(예: "Make Tech Easier").
문서 만들기
스크립트가 준비되었다면, 리디렉션(redirection) 기능을 활용해 이를 템플릿으로 삼아 새 문서를 만들 수 있습니다.
방법은 간단합니다. 테스트 실행 때와 같이 스크립트를 실행하되, 매개변수를 정의한 뒤 > path/to/file/filename.txt를 추가로 입력하면 됩니다. 우리의 경우 명령어는 다음과 같습니다:
./MTE_template.sh Make_Tech_Easier Ody mymail@mailserver.com > /home/ducklord/Documents/new_MTE_note.txt
이렇게 하면 템플릿이 터미널 대신 지정된 파일에 결과를 출력하게 됩니다. 실제 출력 결과는 아래 이미지에서 확인할 수 있습니다.
생각보다 어렵지 않습니다!
언뜻 복잡해 보일 수 있지만, 위의 단계를 차근차근 따라가면 실제로는 매우 쉽습니다. 특히 동일한 템플릿으로 텍스트를 자주 작성해야 하는 경우 그 유용성이 빛을 발합니다. 예를 들어, 같은 단어나 문구가 반복되는 정기 이메일, 제품 정보 페이지 등의 작성을 자동화할 수 있습니다.
나아가 조금 더 공부하면 같은 방식을 코드 생성 템플릿에도 활용할 수 있습니다. 예를 들어 단 한 번의 명령으로 사이트 전체 구조를 담은 HTML 파일을 생성하거나, 시스템 시작 시 bash 스크립트를 root 권한으로 실행하는 설정 등에 응용할 수 있습니다.