반응형

테스트 환경: Ubuntu 14.04, bash shell 사용



Bash 스크립트 파일에서 점점 awk를 써야 될 일이 많아지고, 그 awk 스크립트가 점점 더 복잡해지면서 한 줄에 주욱 이어서 썼더니 점점 가독성이 떨어지고 디버그하기 어렵게 되었다.


결론부터 말하자면, 그냥 가장 바깥에 있는 두 개의 single quote 문자 사이에는 마음대로 띄워써도 된다. ㅡㅡ;

개행 문자(newline), 탭 문자 마음대로 써도 상관이 없다.



그런데 내가 뭘 잘못했는지 command not found 에러가 났다.

뭐가 문제였을까?


확인해 보니,

awk [각종_옵션들] 

'                <---- awk 명령과 single quote 문자를 개행문자로 분리(...)

{

...

}

'


이런 식으로 썼던 거였다. 그러니까,


awk [각종_옵션들] '

{

...

}

'


코드의 시작을 나타내는 single quote 문자를 awk 명령줄과 같은 위치에 써야 하는데 그걸 엔터 쳐서 분리했더니, bash shell이 두 개의 서로 다른 명령으로 이해했던 것이었다. ㅜㅜ


아니면,

awk [각종_옵션들] \

'

{

...

}

'


이렇게 역슬래시로 다음 줄까지 명령 하나로 인식하도록 처리했어야 했다.


POSIX 명령의 기본 규칙을 잊지 말자. ㅠㅠ



반응형
블로그 이미지

Bryan_

,