여러번의 테스트가 필요한 경우, 쉘 스크립트를 작성하면 노가다를 뛰지 않을 수 있다. 그런데 쉘 스크립트는 안하다보면 문법 등을 다 까먹어서 한번 정리해 두려고 한다.
간단히 말해 unix/linux 명령어로 이루어진 프로그램이다. 어떤 명령어 집합을 반복 실행하는 일이 많은 경우, 쉘 스크립트를 한번 작성해두고 일종의 단축어처럼 사용할 수 있다.
사람에 따라 다르겠지만, 어찌되었든 생산성 향상을 위해 사용하는 것이므로 너무 복잡한 프로그램을 굳이 쉘 스크립트로 짤 필요는 없다. 나는 구현 난이도... 그러니까 코드 쓰기 편한 부분에 맞춰서 파이썬과 쉘 스크립트를 적당히 섞어 쓰고 있다.
즉, 쉘 스크립트로는 테스트할 프로그램 반복 실행 및 입출력 파이프라인 자동화, 파이썬으로는 검증 및 분석 로직을 작성하는 셈이다.
간단하게 예시를 들어보자면 아래와 같다.
prog1: 테스트 할 프로그램
prog2: 검증 로직
쉘 스크립트: prog1을 실행해서 나온 결과값을 prog2에 입력값으로 주어 검증을 거침
확장자는 기본적으로 .sh를 사용한다.
우선 첫 줄은 shebang으로, #!
으로 시작하여 이 쉘 스크립트를 어떤 프로그램으로 실행할지를 지정해준다.
대부분의 경우
#!/bin/bash
bash 쉘을 이용하지만, 만약 특정 쉘을 사용하려면 해당 실행 경로를 기재해주면 된다.
#
으로 시작된 줄은 주석처리 된다.hello.sh
#!/bin/bash
echo "hello";
실행은 쉘 스크립트의 파일 경로를 작성해주면 된다.
./hello.sh
ls -l
위 명령어로 조회를 해보면 실행 권한인 x가 -로 표기되어 있을 것이다.
chmod 755 hello.sh
위와 같이 권한을 수정하면 이제 실행이 가능하다.
그랬는데도 실행이 안된다면, shebang을 제대로 썼는지 확인하자. 물론 이런건 누가 말해주기 전까지 안보인다