답변:
줄 끝에있는 단일 세미콜론은 줄 바꿈도 명령 구분 기호이기 때문에 불필요합니다. case
특히 각 패턴 블록의 마지막 명령 끝에 이중 세미콜론이 필요합니다. 자세한 내용 help case
은 참조하십시오.
에 따르면 man bash
:
metacharacter A character that, when unquoted, separates words. One of the following: | & ; ( ) < > space tab control operator A token that performs a control function. It is one of the following symbols: || & && ; ;; ( ) | |& <newline>
따라서 ;
는 메타 문자 또는 제어 연산자 일 수 있으며 ;;
는 항상 제어 연산자 (명령의 경우)입니다.
특정 코드에서는 ;
줄 끝의 모든 것이 필요하지 않습니다. 은 ;;
그러나 필요합니다.
;
하고 ;;
다음? BASH가 "메타 문자"라고 부르는 것과 "제어 연산자"라고 부르는 것 사이의 실질적인 차이점을 알기에는 BASH 구문 분석에 익숙하지 않습니다.
find의 특별한 경우에는 ;
-exec에 의해 호출 된 명령을 종료하는 데 사용됩니다. 이 질문에 대한 @kenorb의 대답을 참조하십시오 .
@ Opensourcebook-Amit
;
터미널 또는 쉘 스크립트의 단일 세미콜론 에 해당하는 줄 바꿈 .
아래 예를 참조하십시오.
터미널에서 :
[root@server test]# ls;pwd;
쉘 스크립트에서 :
[root@server test]# cat test4.sh
echo "Current UserName:"
whoami
echo -e "\nCurrent Date:";date;
[root@server test]#
그러나 나는 &
개행 또는 단일 세미콜론에 해당 하는 주석에 동의하지 않습니다.
&
백그라운드에서 실행 명령도 명령 구분 기호이지만 세미콜론이나 줄 바꿈으로 작동하지 않습니다.
@Ignacio Vazquez-Abrams
사실이 완전히 정확하지 않은 줄 끝에서 단일 세미콜론은 없습니다 불필요한 확실히 새로운 라인과 같은 것이 아니다.
로부터 배쉬 참조 설명서
';'로 구분 된 명령 순차적으로 실행됩니다. 쉘은 각 명령이 차례로 종료되기를 기다립니다. 반환 상태는 마지막으로 실행 된 명령의 종료 상태입니다.
세미콜론으로 구분 된 명령이 항상 순차적으로 실행될 때 "새 줄"로 구분 된 명령이 병렬 로 실행될 수 있습니다.
A sequence of one or more newlines may appear in a list to delimit commands, equivalent to a semicolon.
따라서 세미콜론에 대해 인용 한 내용은 줄 바꿈에도 동일하게 적용됩니다.
&
아닙니다 \n
. 코멘트에서 분명히 때문에 그가 세미콜론을 생략 할 수 있습니다 적혀 &
또한 단지 같은 명령 구분 ;
및\n
.