명령줄 처리 - 태그 및 메타 문자

명령줄 처리 - 태그 및 메타 문자

나는 단지 명령줄 처리를 배우고 있으며 누군가가 다음 명령문을 해석하는 방법을 확인할 수 있기를 바랐습니다. 책에서 나는 명령줄 처리의 첫 번째 단계가 다음과 같다는 것을 읽었습니다.

  1. 명령을 고정된 메타 문자 집합으로 구분된 토큰으로 분할합니다.공간,상표,새로운 팀, ;, (, ), <, >, |, 그리고 &. 토큰 유형에는 단어, 키워드, I/O 리디렉터 및 세미콜론이 포함됩니다.

내가 명령에 대해 맞습니까?

ls | more

lsmore토큰이고 문자는 두 토큰을 구분하는 기호 pipe입니까 ?meta character

계속해서 <and >are 라고 되어 meta characters있는데 토큰이 될 수 있다고 되어 있어서 조금 혼란스럽습니다 I/O directors.

답변1

이것은 별로 좋은 설명이 아닙니다. ㅏ토큰단어나 문장 부호를 형성하는 일련의 문자입니다. 및 와 같은 <문자 |도 토큰의 일부입니다. 이를 메타 문자라고 부를 수 있지만 이는 유용한 용어가 아닙니다. 기본 규칙은 다음과 같습니다.

  • 공백은 토큰의 일부가 아니며 토큰을 구분하는 데 사용됩니다.
  • 토큰은 일반 문자 또는 연산자 문자로 구성되지만 ()<>&|;둘 다로 구성될 수는 없습니다. 예를 들어 (공통), (연산자), (공통), (연산자) 및 . foo<@a&>b태그로 구성됩니다.foo<@a&>b

그런 다음 인용에 대한 추가 규칙이 있습니다. 특수 문자는 인용하면 의미를 잃고 참조 유형에 따라 다른 규칙이 있습니다. 예를 들어 은 foo'&&'bar\|qux일련의 문자가 포함된 단일 토큰입니다 foo&&bar|qux.

관련 정보