이 명령은 정확히 어떻게 되었나요?

이 명령은 정확히 어떻게 되었나요?

이 명령을 사용할 때 cat <<< Hey > text.txt text.txttext.txt 파일에 "Hey"를 쓴 다음 파일을 표시하고 싶습니다. 그러나 출력이 없습니다. Bash는 실제로 그것을 어떻게 해석합니까?

명령 및 출력:

$ cat <<< Hey > text.txt text.txt
$ cat text.txt
$

답변1

리디렉션을 약간 재정렬하면 의미가 있을 수 있습니다.

<<< Hey > text.txt cat text.txt

Hey이 문자열은 cat의 표준 입력으로 전송됩니다. text.txt쓰기 위해 열었고 잘렸습니다. 따라서 그 안에 텍스트가 있으면 사라집니다.

cat매개변수를 사용하여 실행됩니다 text.txt. 파일이 매개변수로 제공되므로 표준 입력을 무시하므로 Hey사용되지 않습니다. text.txt잘려서 인수가 cat실행될 때 text.txt출력할 것이 없으므로 text.txt표준 출력, 즉 리디렉션을 통해 cat계속 비어 있습니다.

관련 정보