명령 줄 : << 대신 <<<


63

왜 명령 md5sum <<< 'ddd' (출력 : d6d88f2e50080b9602da53dac1102762 -) 오른쪽 및 md5sum << 'ddd'하지?

무슨 <<<뜻입니까?

답변:


45

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

echo ddd | md5sum

한편, <<here 문서를 시작합니다. 마커 ddd를 포함 하는 다음 라인 은 모두 프로그램의 입력을 구성합니다. (데이터에 나타나지 않는 마커를 사용해야합니다.) 위와 같이 동일한 효과를 얻을 수 있습니다.

md5sum <<END
ddd
END

사이 한 차이가 <<END하고 <<'END'평소와 같이 확장됩니다 따옴표없이, 어떤 변수, 여기에 문서 등 이스케이프 시퀀스는 :.


3
가 동일하지의 경우를 제외하고 있다는 점이다 rc, <<<(같은 <<) 그래서 명령에 의해 사용할 수있는 임시 파일을 사용하여 lseek자신의 표준 입력을.
Stéphane Chazelas

32

<<<here 문자열을 소개 합니다 . 이후 문자열 <<<은 명령에 대한 입력으로 전달됩니다. 이것은 Byron Rakitzis의 rc(Plan 9 쉘) 포트 에서 Unix로 시작되었으며 zsh, ksh93 및 bash에도 있습니다.

<<소개 여기에 문서를 : 쉘 스크립트의 후속 행은 명령에 입력으로 전달하고, 문자열이 후 <<터미네이터이다. 이 문서는 모든 Bourne 스타일 쉘 (Bourne, POSIX, ash, bash, ksh, zsh 등), C 스타일 쉘 (csh, tcsh) 및 Plan 9 쉘 (rc, es)에서 작동합니다.


3
아니요, 확장명 <<<이 아니며 ksh경로는 rc-> zsh-> ksh93->입니다 bash( ksh릴리스 노트는에서 기능을 한 번 빌리면 승인합니다 zsh). 스타일 쉘 <<에서도 작동rc
Stéphane Chazelas

거기의 차이입니다 rczsh <<<하지만 그에 rc후행 개행 문자를 포함하지 않는 's와 임시 파일을 사용하지 않습니다 (파이프 적어도 리눅스 포트에서 공급 별도의 프로세스를 사용).
Stéphane Chazelas

좀 더 정확하게 는 Plan9에없는 것처럼 <<<유닉스 포트 rc에서 나온 rc것입니다.
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.