2016-09-19 70 views
1

跨越以下命令剛來到:在shell中,「cat> somefilename << EOF」(特別是大於和小於 - 的兩個符號)是做什麼的?

cat > myspider.py <<EOF 

但我不知道使用的><<的。

+0

按理說這應該是兩個完全不同的問題。 (另外,他們幾乎肯定都是重複的)。 –

+0

...''EOF'部分是重複http://stackoverflow.com/questions/2500436/how-does-cat-eof-work-in-bash –

+0

嗯。 http://stackoverflow.com/questions/39581182/what-does-this-bash-line-do-hpc是一個完美的重複,但沒有答案(和downvote)。作爲這個騙局的結束。 –

回答

1

<<EOF是heredoc的開始。在此行之後並且在僅包含EOF的下一行之前的內容以stdin形式提供給過程cat

> myspider.py是一個stdout重定向。 myspider.py將被截斷,如果它已經存在(並且是一個常規文件),並且cat的輸出將被寫入它。

由於cat沒有命令行參數(這裏是因爲重定向被解釋爲shell的關於如何設置進程的指令,而不是作爲參數傳遞給cat)從其輸入讀取並寫入其輸出<<EOF指示應將以下行作爲輸入寫入進程中,並且>myspider.py指示應將輸出寫入myspider.py,因此這會將所有內容寫入到下一個EOFmyspider.py


參見:

相關問題