io 리디렉션 연산자 뒤에 공백이 있나요? [복사]

io 리디렉션 연산자 뒤에 공백이 있나요? [복사]

쉘 스크립트를 작성할 때 사람들이 I/O 리디렉션 연산자 뒤에 공백을 넣을지 여부에 많은 불일치가 있다는 것을 알았습니다. 예를 들어:

foo >bar.txt

작동하지만 다음도 작동합니다.

foo > bar.txt

....또는 심지어 이:

foo       >             bar.txt

사실 심지어Linux 문서 프로젝트 페이지실망스러울 정도로 일관성이 없습니다 2>&1.불다터미널(공백 있음)이 한 곳에 있고 또 > filename다른 곳에 있습니다!

나는 후자가 나에게 두 가지 다른 주장처럼 보이기 때문에 전자를 사용해 왔지만, 둘 사이에 차이점이나 추론이 있는지 궁금합니다.

무엇보다 >bar.txt휴대성이 더 좋나요 ? > bar.txt아니면 하나의 정의 사례에 하나의 구문을 사용해야 하고 다른 경우에는 다른 구문을 사용해야 합니까?

답변1

  1. 문자 <, >&|쉘에 특별하며 인용되지 않은 경우 모든 곳에서 특별한 의미로 인식됩니다.

  2. 휴대용 리디렉션 연산자는 >, >>, >|, >&, <, <<, <<-, 입니다 <>. 리디렉션 연산자 앞에는 파일 설명자를 나타내는 숫자가 올 수 있습니다. 이 경우 숫자와 리디렉션 연산자 사이에는 공백이 없어야 하며 숫자는 이전 단어(있는 경우)와 하나 이상의 공백으로 구분되어야 합니다. . 그렇지 않은 경우 리디렉션 연산자 주위의 따옴표 없는 공백은 선택 사항입니다.

바라보다Open Group 기본 사양 7호, 2018년판,셸 및 유틸리티, 제 2 장, "쉘 명령 언어"더 알아보기.

관련 정보