;ls bash: 예상치 못한 표시 ";" 근처에서 구문 오류가 발생했습니다.

;ls bash: 예상치 못한 표시 ";" 근처에서 구문 오류가 발생했습니다.

입력 후;ls

그 대가로 이걸 받았어요 -bash: syntax error near unexpected token `;'

어떻게 해결할 수 있나요?

답변1

세미콜론은 명령을 종료합니다. 개행 문자는 괜찮기 때문에 일반적으로 필요하지 않습니다. 하지만 다음을 사용하면 한 줄에 여러 명령을 넣을 수 있습니다.

$ echo -n "hi "; echo there
hi there

아니면 더 유용할 수도 있습니다:

if [ whatever ]; then

줄 시작 부분에 세미콜론을 넣으면 그 앞에 "빈" 명령이 남게 되는데, 이는 분명히 쉘 구문에서 금지되는 것입니다. Yash는 유용한 오류 메시지를 제공합니다.

$ yash -c '; echo hi'
yash -c:1: syntax error: a command is missing before ‘;’

Ksh와 Zsh는 문제를 무시하는 것 같습니다.

$ zsh -c '; echo hi'
hi

(그러나 is는 와 다르고 like 는 . 과 다르기 echo foo;;때문에 이들에서도 사용할 수 없습니다 . 는 명령문에 사용됩니다 .);;;>>>;;case

빈 명령은 아무 작업도 수행하지 않으므로 선행 세미콜론을 생략할 수 있습니다. 아니면 Zsh로 전환하는 것이 좋을 것 같습니다.

답변2

다음 구문 오류와 동일합니다.

$ ;
bash: syntax error near unexpected token `;'

이는 cmd단지종료 ;:

$ ls ;

이 경우에는 ;다음과 같이 정의된 메타 문자입니다.

메타문자
인용되지 않은 경우 단어를 구분하는 데 사용되는 문자입니다.

;복합 명령 과 동일하지 않습니다 .

if list; then list; else list; fi

이 경우 이는 명령 구문의 일부입니다.

관련 정보