가끔 터미널에 ">" 프롬프트가 반복적으로 표시되는 이유는 무엇입니까?

가끔 터미널에 ">" 프롬프트가 반복적으로 표시되는 이유는 무엇입니까?

글쎄, 일부 명령을 잘못된 방식(오타 등)으로 실행하면 터미널이 다음과 같이 출력됩니다. >대신 computername:workingfolder username$Enter를 입력하면 다음과 같이 됩니다.

>

>

>

Enter를 세 번 누르면 끝입니다.

답변1

>기본 계속 프롬프트입니다. 이전 입력에 불균형한 따옴표가 있는 경우 이 프롬프트가 표시됩니다.

예를 들어 명령줄에 작은따옴표와 몇 개의 키를 입력합니다 enter.

$ '
> 
> 
> 

계속하라는 메시지가 표시됩니다.

  • (a) 닫는 따옴표를 사용하여 명령을 완성하세요.

    또는

  • (b) Enter Ctrl+ D입력 완료. 이 시점에서 쉘은 불균형 견적에 대한 오류 메시지로 응답합니다.

    또는

  • (c) Ctrl+를 입력하면 C입력 중인 명령이 중단됩니다.

무슨 소용이야?

때로는 삽입된 개행 문자가 포함된 문자열을 입력하고 싶을 수도 있습니다. 다음과 같이 이 작업을 수행할 수 있습니다.

$ paragraph='first line
> second line
> third line
> end'

이제 쉘 변수를 표시하면 프롬프트가 사라졌지만 개행 문자는 보존된 것을 볼 수 있습니다.

$ echo "$paragraph"
first line
second line
third line
end

답변2

명령에 닫히지 않은 따옴표가 있는 경우 이런 일이 발생할 수 있습니다. 이와 같이:

$ echo "test here
>
>
...

인용문을 닫으면(또는 열려 있는 인용문을 작성하여) 이 모드를 종료할 수 "있습니다 '. 중괄호로 구분된 블록, 부분 완료 for-do또는 while-do루프 또는 기타 구조일 수도 있습니다. 를 눌러 Ctrl-C명령을 취소할 수도 있습니다(그런 다음 Up수정을 누름).

따옴표가 분명히 누락되지 않은 상태에서도 이런 일이 발생할 수 있습니다.범위또는역사확장은 예상치 못한 곳에서 발생합니다.


이것은 >당신 것입니다PS2("도움") 가치. 무슨 일이 일어났는지 상기시키기 위해 다른 것으로 변경할 수 있습니다.

PS2="Unclosed >"

유언장 각 줄의 시작 부분에 .bashrc인쇄하도록 하세요 .Unclosed >

답변3

다른 답변 외에도 \줄의 마지막 문자로 a를 입력하면 계속 프롬프트도 표시됩니다.

답변4

쉘은 사용자가 명령을 완료할 때까지 기다립니다. 어딘가에 완료되지 않은 참조가 있거나 "for" 루프를 시작하고 사용자가 입력을 마칠 때까지 기다리고 있다고 생각하는 것일 수 있습니다.

관련 정보