본문 바로가기

원래 if 와 then 사이에 엔터가 필요하는 구나. 단순한 lex를 사용해서 그런듯. 아무튼 ;가 한줄로 쓸때는 꼭 필요합니다.

쉘 스크립트에서 if []; then fi 구조에서 세미콜론(;)의 의미는 명령의 끝을 나타내는 것입니다.


세미콜론의 역할

  1. 명령 구분자:

    • 쉘 스크립트에서 한 줄에 여러 명령을 작성할 때, 명령을 구분하기 위해 세미콜론을 사용합니다.
    • 예를 들어:
      echo "Hello"; echo "World"
      위 코드는 두 개의 echo 명령을 한 줄에 실행하도록 작성한 것입니다.
  2. then 키워드와의 연결:

    • 쉘에서 if 구문의 조건 평가와 then 키워드는 기본적으로 새 줄로 구분됩니다.
    • 하지만 한 줄로 작성하고 싶을 때, 세미콜론으로 명령의 끝을 명시하여 구분합니다.
    • 예:
      if [ condition ]
      then
          echo "Condition met"
      fi
      위 코드는 다음과 같이 한 줄로 쓸 수 있습니다:
      if [ condition ]; then echo "Condition met"; fi

왜 세미콜론이 필요할까?

쉘은 기본적으로 한 줄에서 명령이 끝나는 위치를 구분하기 위해 새 줄을 사용합니다. 하지만 한 줄에서 여러 명령을 작성하거나 if 구문을 압축해서 쓰고 싶을 때, 세미콜론을 이용해 명령의 끝을 명시적으로 표시할 수 있습니다.


예제

1. 세미콜론 없는 구조 (멀티라인):

if [ -f ./file.txt ]
then
    echo "File exists"
fi

2. 세미콜론을 사용한 구조 (한 줄):

if [ -f ./file.txt ]; then echo "File exists"; fi

요약

  • 세미콜론(;)은 명령의 끝을 표시하여 쉘이 다음 명령을 인식할 수 있도록 합니다.
  • if [ 조건 ]; then에서 세미콜론은 조건 평가([ 조건 ])의 끝을 나타내고, 이어지는 then 키워드와 연결합니다.

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.