때에 온다쉘 작업, 첫 번째 단계는 이해할 수 있지만 두 번째 단계는 조금 혼란 스럽습니다. 이것이 나의 이해이다:
먼저, 쉘은 입력을 단어와 연산자로 분할한 다음 인용 규칙에 따라 실행합니다. 제가 가지고 있는 몇 가지 질문은 다음과 같습니다. 내가 실행할 때 :
$ \n
bash: n: command not found
왜 n: command not found
? 아니요 \n: command not found
?
$ $'\n'
bash: $'\n': command not found
ANSI-C 인용을 시행하지 않는 이유는 무엇입니까?
그런데 입력이 스크립트 파일인 경우 단어와 연산자로 어떻게 분할되나요? 한 줄씩 또는 전체적으로?
답변1
백슬래시는 다음 문자를 인용합니다( 인용문 참조 man bash
). \n
따라서 는 다음과 같이 해석됩니다 n
(명령의 첫 번째 단어로서 이는 별칭 확장을 방지합니다. 의 ALIASES 참조 man bash
).
$'\n'
예ANSI-C 인용문으로 해석됩니다. Bash는 동일한 인용문을 사용하여 문제가 있는 문자를 표시합니다. 같은 오류가 발생할 수 있습니다
'
'
이것은 그것과 동일합니다.
단어 분할 과정은 처음에 설명되어 있습니다 man bash
. 궁금하신 점은 좀 더 구체적으로 질문하시거나, 확인해 보세요소스 코드.