`IFS="value" 명령`은 많은 쉘에서 널리 사용되는 기능이지만 공식 문서를 찾기가 어렵습니다. 공식 기록은 어디에 있나요? [복사]

`IFS="value" 명령`은 많은 쉘에서 널리 사용되는 기능이지만 공식 문서를 찾기가 어렵습니다. 공식 기록은 어디에 있나요? [복사]

IFS="value" command제공된 명령이 지속되는 동안에만 IFS(Internal Field Separator)를 일시적으로 변경하는 방법이라고 흔히 볼 수 있지만 , 비슷한 사용법은 실패할 것 같은 경우가 많습니다.

이것들은 모두 내 실수라고 확신하지만, 내 오해가 무엇인지 알아내려고 노력했지만 이 기능의 존재에 대해 언급하는 공식 문서를 전혀 찾을 수 없었습니다.

어쩌면 단순히 어떤 용어를 검색해야 할지 모르는 진짜 사례일 수도 있습니다. 기능에 내가 모르는 이름이 있고 상당히 합리적인 검색량으로는 찾을 수 없기 때문일 수도 있습니다.

BASH 매뉴얼 검색, posix 사양의 관련 부분 검색, Bing 채팅 요청 등을 시도했습니다. 내가 찾을 수 있는 유일한 결과는 사람들이 이러한 기능의 존재를 언급하는 것뿐이지 공식 문서는 전혀 없습니다. 이 기능이 반드시 존재해야 한다는 사실을 아는 것 외에도(나 자신과 다른 사람들에게 분명히 작동하기 때문에) 이 기능이 있거나 오히려 이 기능에 대한 공식 문서가 존재하지 않는 것처럼 느껴집니다.

그래서 StackExchange에 대한 제 질문은 이 기능이 정확히 무엇이며 이에 대한 공식 문서는 어디에 있습니까?입니다.

저는 이제 BASH, Posix, Linux, Unix 등 공식 문서를 찾고 있습니다.

답변1

이 내용은 다음과 같이 기록됩니다."환경" 열Bash 매뉴얼은 다음과 같이 말합니다:

간단한 명령이나 기능의 환경은 쉘 매개변수에 설명된 대로 매개변수 할당을 선행하여 일시적으로 향상될 수 있습니다. 이러한 지정문은 명령으로 표시되는 환경에만 영향을 미칩니다.

이는 귀하가 요청하는 구문이 다음에 IFS적용되는 구문이 아니라는 것을 의미합니다.어느바꾸다. 예를 들어 HOME단일 명령에 대한 변수를 설정하려면 다음을 실행할 수 있습니다.

HOME=/tmp/somedir mycommand

이 구문은 다음에도 문서화되어 있습니다.bash(1)매뉴얼 페이지, 내용은 다음과 같습니다("SHELL GRAMMAR" 섹션 참조).

간단한 명령은 일련의 선택적인 변수 할당과 공백으로 구분된 단어 및 리디렉션이 뒤따르고 제어 연산자에 의해 종료되는 것입니다.

"간단한 명령 확장" 섹션에서:

간단한 명령을 실행할 때 쉘은 왼쪽에서 오른쪽 순서로 다음 확장, 할당 및 리디렉션을 수행합니다.

  1. 파서에 의해 변수 할당으로 표시된 단어(명령 이름 앞의 단어)와 리디렉션은 나중에 처리하기 위해 저장됩니다.

  2. 변수 할당이나 리디렉션이 아닌 단어는 확장됩니다. 확장 후 남은 단어가 있는 경우 첫 번째 단어는 명령 이름으로 처리되고 나머지 단어는 인수로 처리됩니다.

  3. 리디렉션은 위의 "리디렉션"에 설명된 대로 수행됩니다.

  4. 각 변수 할당에서 = 뒤에 오는 텍스트는 변수에 할당되기 전에 물결표 확장, 매개변수 확장, 명령 대체, 산술 확장 및 따옴표 제거를 거칩니다.

관련 정보