글

라벨이 단어분할인 게시물 표시

Bash Shall Script Word Splitting(단어분할)

이미지
이번 블로그에서는 Shall Script 명령어 해석에 있어서 단어분할(Word Splitting)의 중요성에 대해서 설명해 드리겠습니다. 단어 분할은 명령어 라인이 어떻게 해석되는지에 매우 중요한 영향을 미칠수 있습니다. 단어 분할은 비인용 상태(unquoted)에서만 수행되는데, 3가지의 경우에 적용 됩니다. 1) 파라미터 확장(Parameter expansions) - 변수나 파라미터의 값이 확장될 때, 이 값들 사이의 공백을 기준으로 단어 분할이 발생할 수 있습니다. 2) 명령어 치환(Command substitutions) - 다른 명령어의 출력을 현재 명령어의 일부로 사용할 때, 출력된 텍스트에서 단어분할이 발생 할수 있습니다. 3) 산술 확장(Arithmetic expansions) - 산술 연산 결과를 처리할 때, 결과 값이 포함된 공백을 기준으로 단어 분할이 일어날수 있습니다. * 단어분할(Word Splitting)이란?  단어 분할은 쉘에서 명령어를 처리할때 공백(space), 탭(tab), 새라인("\n") 등의 기준으로 문자열을 여러 단어로 나누는 과정 입니다. 이 과정은 명령어의 인수나 파라미터를 구분하는데 중요한 역할을 합니다. 이때 Ubuntu(Linux)에서 기본 구분자는 IFS가 사용됩니다.  * IFS(Internal Field Separator)란? IFS는 쉘 스크립트 내에서 단어를 구분하는 데 사용되는 문자 집합을 정의하는 환경변수 입니다. 기본값 : 기본적으로 IFS는 공백(Space), 탭(tap) 그리고 개행 문자(newline)을 포함합니다. 사진1) echo로 IFS문자 출력 사진1과 같이 IFS문자를 출력할려고 하면 빈 화면이 나온다. 이는 공백(Space), 탭(tap) 그리고 개행 문자(newline)들이 모두 보이지 않는 문자이기 때문에 그렇다.  사진2) echo로 보이는 IFS문자 출력 사진2와 같이 IFS문자를 보이게 변경하였다. 여전히 공백(Space)는...