한국어 다음으로 쓰는 저의 두 번째 언어가 바로 입니다. 쉘(shell)이나 명령줄(command line) 등으로도 불리는 셸, 그리고 스크립팅(scripting) 등으로도 불리는 프로그래밍(programming). 여기에 셸 프로그래밍에 대한 저의 경험과 생각, 조언들을 정리합니다.

프로그램을 한 파일로 포장하기

Apple의 Mac OS X을 쓰는 사람들은 설치한 프로그램의 위치를 옮기거나 지우고 이름 바꾸는 일들을, 파일 다루기 이상의 특별한 작업으로 여기지 않습니다. 그것은 Mac OS X의 Finder가 Mail.app과 같이 여러 파일로 구성된 프로그램의 bundle 디렉토리를 하나의 단위로 다룰 수 있게 해주기 때문이지요. 프로그램 뿐 아니라, 가령 Keynote나 Pages의 문서도 여러 파일로 이루어진 디렉토리이지만 한 단위로 다룰 수 있습니다. 이러한 특징은 Time Machine이라는 백업도구가 파일을 단위로 변경사항을 기록하는 아주 단순한 방법으로도 매우 효율적으로 동작할 수 있는 기반이 됩니다. 이렇게 디렉토리를 하나의 파일처럼 다룰 수 있는 점을 저는 Mac OS X의 큰 장점으로 높이 평가해오고 있었습니다.

셸 프로그래밍의 매력

셸의 힘은 프로그래밍과 사용 사이의 경계를 허문다는 점에서 나옵니다. 즉, 셸을 통해 기계를 사용하는 행위 자체가 프로그래밍이며, 셸 프로그래밍이 곧 기계를 다루는 방법이란 점에서 매우 매력적입니다.

MSH

이럴수가, 왜 이걸 이제야 발견한거지?!

값 탈출시키기

셸 스크립트를 짜다보면 eval을 쓰거나 또 다른 스크립트를 만들어내야할 때가 종종 있다. 그냥 장난삼아 짜는 스크립트라면 상관 없을 수도 있지만, 모든 상황에 대비해 돌아갈 수 있게 진지하게 짜는 스크립트라면 값이 뭉개지지 않도록 감싸는 방법(escaping in shell scripts)을 고민해야 한다.

프로그래밍

아름다운 프로그램 짜기.


pgmg