![`$(< file)`은 엄격하게 bash입니까, 아니면 `$(< file)`이 실제로 `cat`에 의존합니까? [복사]](https://linux55.com/image/116644/%60%24(%26lt%3B%20file)%60%EC%9D%80%20%EC%97%84%EA%B2%A9%ED%95%98%EA%B2%8C%20bash%EC%9E%85%EB%8B%88%EA%B9%8C%2C%20%EC%95%84%EB%8B%88%EB%A9%B4%20%60%24(%26lt%3B%20file)%60%EC%9D%B4%20%EC%8B%A4%EC%A0%9C%EB%A1%9C%20%60cat%60%EC%97%90%20%EC%9D%98%EC%A1%B4%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
Bash 매뉴얼에서:
명령 대체를 사용하면
$(cat file)
명령을 동일하지만 더 빠른 명령으로 바꿀 수 있습니다$(< file)
.
cat
bash 내장 명령이 아닌 coreutils에서. 그래서 나는 bash 매뉴얼에서 bash가 아닌 다른 것을 언급하고 있다는 사실에 놀랐습니다 cat
.
정말 $(< file)
의 줄임말 인가요 $(cat file)
?
그것은 $(< file)
엄격하게 bash입니까, 아니면 $(< file)
실제로 그것에 의존 합니까 cat
?
$(< file)
엄격하게 bash이고 에 의존하지 않는 경우 cat
,
< file
리디렉션인가요, 명령인가요, 아니면 둘 다 인가요 (리디렉션 및 빈 명령 이름이 있는 명령)?< file
(리디렉션이 있고 명령 이름이 비어 있는 명령) 표준 출력으로 출력하는 방법은 무엇입니까?
감사해요.
답변1
업데이트: 참조https://unix.stackexchange.com/a/368663/145784다양한 쉘의 유닉스 연산자에 대해 자세히 논의하십시오 $(<
.
$(< file)
완전히 강타. 이 문은 < file
파일을 가져와 이를 stdin
호출한 명령으로 리디렉션합니다. 이 경우 는 $()
명령 대체 형태이므로 명령을 대체하여 사용됩니다. 수신한 입력을 받아 명령에 사용하기에 적합한 변수로 변환합니다. 외부 프로그램을 호출하지 않기 때문에 cat
속도가 더 빠릅니다.
이 변수를 표준 출력으로 출력하려면 다음을 실행하면 됩니다.
echo $(< file)