TIL 2021.03.29 [쉘 스크립트]

Kyu·2021년 3월 28일
0

TIL

목록 보기
78/322

쉘 스크립트로 타이머 만들기

매 정해진 시간마다 스트레칭을 하려고 간단한 타이머를 사용하고 싶었는데 될 수 있으면 키보드로 조작할 수 있으면 좋다고 생각했다.

지금 쓰고 있는 Keyboard Maestro 로 왠지 될거같아서 검색해봤는데 딱히 그런 방법은 없는듯 보였다.

그래서 간단하게 스크립트를 만들어서 터미널에서 사용할 수 있지 않을까 생각하고 검색해보니 역시 바로 나왔다.

근데 기본적으로 이 쉘 문법이 어떻게 되는지 알아야 코드를 가져다 사용하더라도 에러가 나거나 했을 때 도움이 될것같아 Bash scripting tutorial를 참고해서 기본적으로 어떻게 돌아가는지 배웠다.

튜토리얼 진행중에 내가 만든 파일이 퍼미션이 없다고 실행이 안되서 언뜻 스쳐들었던 chmod 라는 키워드가 생각나서 검색해보니 내가 만들었지만 파일에 실행권한이 없었다. Linux chmod command tutorial를 참고해서 r가 read, w가 write, x가 excute의 약자라는 걸 다시 상기했고 만든 파일에 x 권한을 주었다.

근데 검색해서 나온 타이머 코드를 실행했을때 illegal option 이라는 게 떴는데 첨엔 코드상에 문제가 있다고 생각하고 이것저것 걍 느낌대로 수정해봤는데 같은 에러가 나오길래 코드상의 문제가 아니라 뭔가 다른 문제가 있다는걸 직감했다.

bash illegal option 이라고 검색해보니 질문한사람들을 보니 코드를 질문하는게아니라 이 option을 mac os 실행하려면 어떤 option으로 바꾸어야하는지 묻는 등..뭔가 스크립트 작성할 때 사용하는 옵션들이 운영체제마다 다르다는 걸 알아챘다.

근데 확실친 않아서 다른 운영체제에서 테스트해보기로 했다. 내가 아는 다른 운영체제는 리눅스/우분투다. 그리고 우분투에선 왠지 모르게 다 될거같은 느낌이라 도커에 우분투를 설치해서 테스트해보기로 했다.

예전에 도커 실습을 하고 오래지나 image pull하는 것도 몰랐지만 역시 검색하면 다 나온다. 기본적인 image pull, container start 등은 Can I use docker for installing ubuntu on a Mac?를 참고했다.

역시 우분투에서 해보니 잘 실행되었다.

아 그리고 source 라는 명령어는, 원래 .bashrc이나 .zshrc 에다가 뭘 등록해야 스크립트 파일 내에 함수를 사용할 수 있는데 source로 저런식으로 사용할 수 있다. 그 부분에 대해선 여기가 잘 나와있다. How to call bash functions

우분투에서 되는 걸 보니 mac os에서 실행하려면 옵션을 바꿔야할것 같은데, 이건 어떻게 찾아야할지 모르겠다. 타이머에 대한 코드는 How To Make a Countdown Timer in Bash 여기에서 엄청 자세히 설명되어 있다.

profile
TIL 남기는 공간입니다

0개의 댓글