누군가 다음 코드에서 "< <"을 설명 할 수 있습니까?Bash 구문 : "<<"는 무엇입니까?
mysql test<<E0Q
Select * from signins
내가 자신을 검색하려고 싶지만,
누군가 다음 코드에서 "< <"을 설명 할 수 있습니까?Bash 구문 : "<<"는 무엇입니까?
mysql test<<E0Q
Select * from signins
내가 자신을 검색하려고 싶지만,
그것은 "여기 파일"의 참조 기호, 댄를 위해 ...
감사 검색하기 어려운 http://www.linuxjournal.com/article/3771
Here docs 또는 큰 텍스트 블록을 프로그램으로 쉽게 파이프하는 방법.
여기에 문서가 있습니다. 수동에서 :
여기문서
This type of redirection instructs the shell to read input from the current source until a line containing only word (with no trailing blanks) is seen. All of the lines read up to that point are then used as the standard input for a command. The format of here-documents is: <<[-]word here-document delimiter
그것은 비록 배관에 사용되는 것뿐만 아닙니다. 예를 들어 Linux From Scratch 연습에서 사용 된 스크립트는 cat
명령과 출력 리디렉션 연산자 (>
)와 함께 heredocs를 광범위하게 사용합니다. EOF를 끝 구분자가 발생되면 < < 사이의 모든 텍스트가 EOF 파일`TEST.C로 구분하고, EOF 끝 구분 기호를 시작할 '및 쓰기
[email protected] ~$ cat >test.c <<EOF
int main(void){return 0;}
EOF
[email protected] ~$
: 여기에 그런 일의 예입니다 쉘 프롬프트로 되돌아 간다.
왜이게 낫다 : echo "int main (void) {return 0;}"> test.c? 내가 너를 올바르게 이해한다면 그것은 똑같은 것이다. – Dan
좋지도 나쁘지도 않습니다. 그것은 단지 예일뿐입니다. 그러나 여러 행을 원하거나 따옴표와 함께 문자열을 사용한다고 가정하십시오. heredoc 사용에 찬성하는 주장은 heredoc이 종종 "super quote"처럼 사용되어 필요할 때 "and"문자를 혼합 할 수 있기 때문에 주로이 두 가지를 기반으로합니다. ! ' 큰 따옴표 안에있는 문자가 발견되지 않는 이벤트에 대한 오류를 유발하는 것으로 보이므로 변수 확장과 같은 유용한 기능이 손실 되더라도 작은 따옴표를 사용해야합니다. – Dustin
이 문서의 주된 장점은 긴 문서에 대한 일련의 에코 명령보다 간결하며이 이점의 일환으로 한 줄에 하나의 에코 프로세스 오버 헤드도 방지합니다. –