명령줄: << 대신 <<<

명령줄: << 대신 <<<

명령 md5sum <<< 'ddd' (출력 d6d88f2e50080b9602da53dac1102762 -)은 정확하지만 md5sum << 'ddd'정확하지 않은 이유는 무엇입니까?

무슨 뜻이에요 <<<?

답변1

"여기 문자열"을 시작합니다 <<<. 문자열이 확장되어 프로그램의 표준 입력에 공급됩니다. (귀하의 경우 확장이 많이 발생하지 않습니다.) 다음과 같습니다.

echo ddd | md5sum

반면에 <<여기에서 문서를 시작하세요. 다음의 모든 라인(마커를 포함하는 라인까지)은 ddd프로그램에 대한 입력을 구성합니다. (데이터에 나타날 가능성이 적은 마커를 사용해야 합니다.) 다음과 같이 하면 위와 동일한 효과를 얻을 수 있습니다.

md5sum <<END
ddd
END

<<END와 사이에는 한 가지 차이점이 있습니다 <<'END'. 따옴표가 없으면 여기 문서의 모든 변수, 이스케이프 시퀀스 등이 평소처럼 확장됩니다.

답변2

<<<소개했다여기에 있는 문자열: 다음 문자열이 <<<명령의 입력으로 전달됩니다. 이는 Byron Rakitzis rc의 Unix(Plan 9 쉘) 구현에서 유래되었으며 zsh, ksh93, mksh, yash 및 bash에도 존재합니다.

<<소개했다여기 문서: 쉘 스크립트의 후속 행은 명령에 대한 입력으로 전달되며 다음 문자열 <<은 종결자입니다. 여기에 있는 문서는 모든 Bourne 스타일 셸(Bourne, POSIX, ash, bash, ksh, zsh 등), C 스타일 셸(csh, tcsh) 및 Plan 9 셸에서 파생된 셸(rc, es, 아캉가).

관련 정보