원래 if 와 then 사이에 엔터가 필요하는 구나. 단순한 lex를 사용해서 그런듯. 아무튼 ;가 한줄로 쓸때는 꼭 필요합니다.
쉘 스크립트에서 if []; then fi
구조에서 세미콜론(;
)의 의미는 명령의 끝을 나타내는 것입니다.
세미콜론의 역할
명령 구분자:
- 쉘 스크립트에서 한 줄에 여러 명령을 작성할 때, 명령을 구분하기 위해 세미콜론을 사용합니다.
- 예를 들어:
위 코드는 두 개의echo "Hello"; echo "World"
echo
명령을 한 줄에 실행하도록 작성한 것입니다.
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
키워드와 연결합니다.
'IT > 리눅스' 카테고리의 다른 글
쉡 스크립트에서 환경변수 값 비교시 null, empty 체크를 위한 팁 (0) | 2025.01.09 |
---|---|
특정 이름의 폴더만 빼고 복사 하고 싶을 때 - rsync (1) | 2024.12.05 |
현재 Shell 정보 확인하기 (0) | 2024.11.28 |
vi - gf 로 파일열기시 환경변수 있어도 가능하게 (0) | 2024.08.28 |
윈도우에서 리눅스로 파일 이동시 ^M 문자 제거 방법 (0) | 2024.08.28 |