다음과 같은 두 개의 문자열 필드(공백으로 구분)가 포함된 파일(텍스트)이 있습니다.
1.2.3 version1
다음과 같이 set 명령을 사용하면 첫 번째 필드는 $1에 있고 두 번째 필드는 $2에 있습니다. 이 명령의 기능을 설명할 수 있는 사람이 있나요? 특히 <어떡하지? 이것이 입력 리디렉션입니까?
set -- $(<text)
답변1
이 명령은 두 가지 특별한 트릭을 결합합니다.
놓다 -
일반적으로 set
쉘 옵션을 구성하는 데 사용됩니다(쉘의 매뉴얼 페이지 참조). 특별한 경우는 입니다 set --
. 위치 매개변수를 설정하는 데 사용됩니다. 아쉽게도 그게 뭔지 잊어버렸는데, 다른 방법으로는 잘 풀리지 않는 문제에 대한 글을 읽은 적이 있습니다.
$(<파일)
$(command)
명령 대체입니다. 쉘은 stdout에서 출력을 수집하고 $(command)
명령줄을 실행할 때 이를 바꿉니다. 파일의 내용이 필요한 경우 다음과 같이 할 수 있습니다. $(cat file)
.단지 $(< file)
짧은 버전으로 불필요한 프로세스를 저장합니다( cat
).