<<< 을(를) 리디렉션하는 것에 대해 궁금합니다 bash
. 내용이 가상 파일에 있는 것처럼 다음 체인을 이전 명령으로 리디렉션한다는 것을 알고 있습니다. 예
$ cut -d. -f1 <<< A.B
A
$ cut -d. -f1 <<< 'A.B
> C.D'
A
C
그러나 여러 번 사용하면 어떻게 될지 이해가 되지 않습니다. 예
$ cut -d. -f1 <<< A.B <<< C.D
C
나는 다음과 같은 결과를 예상했을 것입니다
A
C
쉘이 마지막 리디렉션만 고려하는 이유는 무엇입니까? 파일에 더미 라인을 추가하는 방법은 무엇입니까? 파일을 command
가져와 처리 하기 위해 다음 예제와 같은 작업을 수행하고 싶습니다 .virtual line
my_file
command <<< "virtual line" my_file
노트bash
: 버전을 사용하고 있습니다 4.4.12(1)-release (x86_64-pc-linux-gnu)
.
답변1
<<<
표준 입력을 리디렉션합니다. stdin을 리디렉션한 다음 다시 리디렉션하면 첫 번째 리디렉션이 손실됩니다.
명령에 "process stdin"을 나타내는 방법이 있는 경우(예: for가 cat
대시인 경우) 다음과 같이 명령 앞에 줄을 추가할 수 있습니다.
cat - input_file <<< 'virtual line'
답변2
대안 제공조 로바의 답변, 다음 구문을 사용하여 보다 완전한 입력을 구성할 수 있습니다.
command << EOF
virtual line
`cat input_file`
EOF