공학, 음악 부스러기
Published on

작은 팁 #1 sh스크립트 큰따옴표 작은따옴표 문법 차이

Authors
  • avatar
    Name
    치우

안녕하세요

새해 복 많이 받고 있으신가? 모르겠네요

곧 홈피 프로젝트 페이지에 두 가지가 빈 창을 채울 예정인데요

하나는 몇 주 전에 오피셜로 정리가 된 치지직 api 를 좀 더 갖다 쓰기 편하게 만드는 프로젝트,

또 하나는 작년부터 해외 드랍쉬핑으로 부품 사랴 아키텍쳐 공부하랴 바쁘게 진행한 가볍게 부착해서 쓰는 루프스테이션입니다.

그중에서도, 오늘은 치지직 api 마이그레이션 보조? 뭐 그런 느낌 비슷한 걸 진행하다,

공유하면 좋을 만한 팁을 발견해서 짧게 공유하는 포스팅입니다

치지직 api 오피셜 페이지 에 가이드 문서에 있는 요청, 응답 구조를 json 으로 작성하고

필터링하는 쉘 스크립트를 작성하다가

코드 캡쳐

일단은 저렇게 짜놓고 다른 스크립트, curl 요청이랑 nc 로 리디렉션 응답 받는 코드에서 이 코드를 호출하면서 인자를 넘겨줄 생각이었습니다.

별 생각없이 명령줄에서 인자를 적어서 실행시켰더니 ,

터미널 캡쳐1

엥?

네,

지금가지 몰랐던게 신기하지만 작은따옴표와 큰따옴표의 용도가 달라서 인자가 문자열로 치환이 되지 않았습니다.

"" 로 묶는 경우

.sh 에서 큰다옴표로 묶는 문자열의 경우 \, $ 등의 특수문자가 ㅅ스크립트 문법에 맞게 처리됩니다

즉, $ 를 붙인 문자열은 변수로 치환해서 인식해서 앞선 client_id 와 state 로 받은 1번, 3번 인자만 제대로 문자열 치환이 된 것입니다.

' ' 로 묶는 문자열의 경우

반면, 작은따옴표로 묶는 문자열은 큰따옴표의 경우와 다르게 내부의 특수문자를 처리하지 않고 문자 그대로 인식합니다 앞선 스크린샷에 2 번 인자 $2 라는 문자열이 인자 2 번이 아닌 문자 그대로 full_uri 에 대이된 것을 확인할 수 있습니다.

아무튼 ,'큰따옴표로 고치니 정상 작동되어서, 이제 타입 체킹하는 코드를 추가해야겠군요, 너무 바쁜 연초입니다 ㅠ.ㅠ

터미널 캡쳐2