좋아, 특정 명령을 잘못 실행하면 (맞춤법 등) 터미널이 이것을 출력하는 >
대신 : 대신에 computername:workingfolder username$
입력하면 다음과 같이됩니다.
>
>
>
내가 세 번 눌렀을 때입니다.
답변
>
기본 연속 프롬프트입니다. 이전에 입력 한 내용에 불균형 따옴표가 있는지 확인할 수 있습니다.
예를 들어, 명령 행에 작은 따옴표를 입력하고 몇 개의 enter
키를 입력하십시오.
$ '
>
>
>
계속 프롬프트가 표시 될 때까지
-
(a) 닫는 따옴표로 명령을 완료하십시오.
또는
-
(b) 입력 을 마치려면 Ctrl+ D를 입력하십시오.이 시점에서 쉘은 불균형 따옴표에 대한 오류 메시지로 응답합니다.
또는
-
(c) Ctrl+ C를 입력하면 입력 한 명령이 중단됩니다.
이것이 유용한 방법
때로는 새 줄이 포함 된 문자열을 입력 할 수도 있습니다. 다음과 같이 할 수 있습니다.
$ paragraph='first line
> second line
> third line
> end'
이제 쉘 변수를 표시하면 프롬프트가 사라졌지 만 줄 바꿈이 유지되는 것을 볼 수 있습니다.
$ echo "$paragraph"
first line
second line
third line
end
답변
명령에 닫히지 않은 따옴표가있는 경우에 발생합니다. 그것은 다음과 같습니다.
$ echo "test here
>
>
...
따옴표를 닫아 해당 모드를 종료 할 수 있습니다 (a "
또는 '
, 또는 열려있는 따옴표가 무엇이든). 또한 중괄호로 구분 된 블록, 부분 완성 for-do
또는 while-do
루프 또는 다른 특정 구문 일 수도 있습니다. 또한 키를 눌러 수 Ctrl-C이 명령을 취소하려면 (다음 Enter 키를 눌러 Up그것을 개정).
매개 변수 또는 히스토리 확장이 예상치 못한 위치에서 발생할 때 명확한 누락 된 따옴표없이 때때로 발생할 수 있습니다.
은 >
당신입니다 PS2
( “보조 프롬프트”) 값. 무슨 일이 있었는지 상기시키기 위해 다른 것으로 변경할 수 있습니다.
PS2="Unclosed >"
당신에 .bashrc
그것을 인쇄 할 것 Unclosed >
대신에 각 행의 시작.
답변
다른 답변 외에도 \
줄의 마지막 문자로 a 를 입력하면 연속 프롬프트가 나타납니다 .
답변
대답은 Bash Reference Manual 의이 비밀스러운 언급에 있습니다 .
5.1 Bourne 쉘 변수
[…]
PS1
: 기본 프롬프트 문자열. 기본값은 ‘\s-\v\$
‘입니다. 이전에 확장 된 이스케이프 시퀀스의 전체 목록 이 표시 되면 프롬프트 인쇄를 참조하십시오PS1
.PS2
: 보조 프롬프트 문자열. 기본값은 ‘>
‘입니다.
… 다음에 :
6.3.3 대화식 쉘 동작
- Bash
PS1
는 명령의 첫 번째 행을PS2
읽기 전에 확장 및 표시 되고, 다중 행 명령의 두 번째 및 후속 행을 읽기 전에 확장 및 표시됩니다 .
따라서 >
를 누르면 EnterBash가 명령이 완료되지 않았다고 판단 하면 프롬프트가 나타납니다 . 그 이유는 다음과 같습니다.
- 줄 바꿈 앞의 문자는 줄 연속으로
\
취급되는입니다 . - 당신은 불완전한 문자열 (일치하지 않는 따옴표 또는 종료되지 않은 여기-문서) 또는 같은 다른 일치하지 않는 구분 기호를 가지고
$()
,()
,``
. - 함수 정의,
for
루프,while
루프 또는을 시작했습니다case
.
의도하지 않은 타이핑 오류로 인해 보조 프롬프트가 표시되면 키 ControlC를 눌러 기본 프롬프트로 돌아갑니다.
답변
명령을 완료하기를 기다리는 쉘. 어딘가에 닫히지 않은 따옴표가 있거나 “for”루프를 시작한다고 생각하고 사용자가 입력을 마칠 때까지 기다릴 수 있습니다.