이 가이드에 관하여
셸 스크립트는 터미널에 치던 명령을 파일에 적어 둔 것이다. 문법이 조금 특이하고 함정이 몇 개 있지만, 계산 연구에서 쓰는 범위는 넓지 않다. 변수와 반복문, 텍스트 도구 세 개(grep, sed, awk), 그리고 작업 스케줄러에 넘길 스크립트 형식 정도면 된다.
터미널 자체가 처음이라면 Linux 스타터팩을 먼저 읽는 편이 좋다.
이 가이드는 cd, ls, cp 같은 명령과 파일 권한을 안다고 가정한다.
주제별로 들어가기
01 · BASICS
첫 스크립트
shebang, 실행 권한, 변수와 따옴표, 명령 치환.
02 · CONTROL
조건과 반복
if와 test, for와 while, case.
03 · FUNCTIONS
함수와 인자
$1과 $@, getopts, 함수와 반환값.
04 · ROBUST
안전한 스크립트
set -euo pipefail, 종료 코드, trap, ShellCheck.
05 · TEXT
grep · sed · awk
찾기, 바꾸기, 열 단위로 자르기. 파이프로 잇기.
06 · EXTRACT
출력 파일에서 값 뽑기
ORCA 에너지와 진동수, QE 총에너지, LAMMPS thermo 표.
07 · BATCH
PBS · Slurm 작업 스크립트
자원 요청, 환경 설정, scratch 디렉터리 쓰는 법.
08 · ARRAYS
작업 배열과 파라미터 스윕
분자 여러 개, 파라미터 여러 값을 한 번에 제출하기.
09 · CHEAT SHEET
치트시트
문법, 텍스트 도구, 스케줄러 명령을 한 장에.
표기
코드 상자에서 $로 시작하는 줄은 터미널에 입력하는 명령이고, 나머지는 출력이다.
$ 없이 시작하는 상자는 스크립트 파일 내용이다.
bash만 다룬다
zsh(macOS 기본), fish 같은 다른 셸도 있지만 클러스터의 기본 셸과 작업 스크립트는 거의 bash다.
스크립트 첫 줄에 #!/bin/bash를 쓰면 대화형 셸이 무엇이든 bash로 실행된다.