bash에서 \n이 n으로 확장되는 이유는 무엇입니까?

bash에서 \n이 n으로 확장되는 이유는 무엇입니까?

때에 온다쉘 작업, 첫 번째 단계는 이해할 수 있지만 두 번째 단계는 조금 혼란 스럽습니다. 이것이 나의 이해이다:

먼저, 쉘은 입력을 단어와 연산자로 분할한 다음 인용 규칙에 따라 실행합니다. 제가 가지고 있는 몇 가지 질문은 다음과 같습니다. 내가 실행할 때 :

$ \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. 궁금하신 점은 좀 더 구체적으로 질문하시거나, 확인해 보세요소스 코드.

관련 정보