Just came across the following command:
cat > myspider.py <<EOF
But I'm not sure of the use of >
and <<
.
This operator stands for the end of the file. This means that wherever a compiler or an interpreter encounters this operator, it will receive an indication that the file it was reading has ended.
End Of Message (-EOM)
EOT is an ASCII character that historically signalled the end of a message (and is a special character in UNIX terminals that means end of stream when it appears in user input only), but it CAN appear in files, so using it in C to signal the end of a file would be a terrible idea when reading binary files!
<<EOF
is the start of a heredoc. Content after this line and prior to the next line containing only EOF
is fed on stdin to the process cat
.
> myspider.py
is a stdout redirection. myspider.py
will be truncated if it already exists (and is a regular file), and output of cat
will be written into it.
Since cat
with no command-line arguments (which is the case here because the redirections are interpreted as directives to the shell on how to set up the process, not passed to cat
as arguments) reads from its input and writes to its output, the <<EOF
indicates that following lines should be written into the process as input, and the >myspider.py
indicates that output should be written to myspider.py
, this thus writes everything up to the next EOF
into myspider.py
.
See:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With