명령 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, 아캉가).