Shell script (1)

스윗포테이토·2022년 11월 6일
2

여러번의 테스트가 필요한 경우, 쉘 스크립트를 작성하면 노가다를 뛰지 않을 수 있다. 그런데 쉘 스크립트는 안하다보면 문법 등을 다 까먹어서 한번 정리해 두려고 한다.

shell script

간단히 말해 unix/linux 명령어로 이루어진 프로그램이다. 어떤 명령어 집합을 반복 실행하는 일이 많은 경우, 쉘 스크립트를 한번 작성해두고 일종의 단축어처럼 사용할 수 있다.

사람에 따라 다르겠지만, 어찌되었든 생산성 향상을 위해 사용하는 것이므로 너무 복잡한 프로그램을 굳이 쉘 스크립트로 짤 필요는 없다. 나는 구현 난이도... 그러니까 코드 쓰기 편한 부분에 맞춰서 파이썬과 쉘 스크립트를 적당히 섞어 쓰고 있다.

즉, 쉘 스크립트로는 테스트할 프로그램 반복 실행 및 입출력 파이프라인 자동화, 파이썬으로는 검증 및 분석 로직을 작성하는 셈이다.

간단하게 예시를 들어보자면 아래와 같다.

prog1: 테스트 할 프로그램
prog2: 검증 로직
쉘 스크립트: prog1을 실행해서 나온 결과값을 prog2에 입력값으로 주어 검증을 거침

shebang

확장자는 기본적으로 .sh를 사용한다.
우선 첫 줄은 shebang으로, #!으로 시작하여 이 쉘 스크립트를 어떤 프로그램으로 실행할지를 지정해준다.
대부분의 경우

#!/bin/bash

bash 쉘을 이용하지만, 만약 특정 쉘을 사용하려면 해당 실행 경로를 기재해주면 된다.

주의점

  • shebang은 반드시 파일의 첫번째 줄에 와야 한다. 첫줄이 아닐 경우, 쉘 스크립트 문법에 따라 #으로 시작된 줄은 주석처리 된다.

실행

  • hello.sh
#!/bin/bash

echo "hello";

실행은 쉘 스크립트의 파일 경로를 작성해주면 된다.

./hello.sh
  • 만약 실행이 안된다면, 실행권한이 없기 때문이다.
ls -l

위 명령어로 조회를 해보면 실행 권한인 x가 -로 표기되어 있을 것이다.

chmod 755 hello.sh

위와 같이 권한을 수정하면 이제 실행이 가능하다.

그랬는데도 실행이 안된다면, shebang을 제대로 썼는지 확인하자. 물론 이런건 누가 말해주기 전까지 안보인다

profile
나의 삽질이 미래의 누군가를 구할 수 있다면...

0개의 댓글