I am a newbie in Linux admin and while I'm learning GDB to debug my code, I need to create an input.txt file for my program to read. I know redirection symbols such as >, >>, and <, but couldn't find info about << via Google since it ignores it.
What does the <<EOF do below?
cat >input.txt <<EOF 1 2 Answers
An excerpt from Shell Input/Output Redirections:
2Here Document
A here document is used to redirect input into an interactive shell script or program. We can run an interactive program within a shell script without user action by supplying the required input for the interactive program, or interactive shell script.
- The general form for a here document is:
Here the shell interprets thecommand << delimiter document delimiter<<operator as an instruction to read input until it finds a line containing the specified delimiter. All the input lines up to the line containing the delimiter are then fed into the standard input of the command.The delimiter tells the shell that the here document has completed. Without it, the shell continues to read input forever. The delimiter must be a single word that does not contain spaces or tabs.
- Following is the input to the command
wc -lto count total number of line:$wc -l << EOF This is a simple lookup program for good (and bad) restaurants in Cape Town. EOF 3- You can use here document to print multiple lines using your script:
This would produce:#!/bin/sh cat << EOF This is a simple lookup program for good (and bad) restaurants in Cape Town. EOFThis is a simple lookup program for good (and bad) restaurants in Cape Town.- This runs a session with the
vitext editor and saves the input in the filetest.txt:#!/bin/sh filename=test.txt vi $filename <<EndOfCommands i This file was created automatically from a shell script ^[ ZZ EndOfCommands- If you run this script with
vimacting asvi, then you will likely see output like:After running the script, you should see the following added to$ sh test.sh Vim: Warning: Input is not from a terminaltest.txt:$ cat test.txt This file was created automatically from a shell script
CAT< New.txt (Press Enter) Here, the user will be prompted to type the input to the file "New.txt". Then Press the Cntrl+d command to tell that this is the End of the file.
Instead of using cntrl+d, Cat<<EOF command can be used in this scenario and type EOF at the end of the paragraph. The system will consider EOF as the End of the para. Instead of EOF, any alphabets can be used. eg) CAT<<ZZZ New.txt (Press Enter). Here, the User will be prompted to type the input. At the end of the para, type ZZZ, then press enter. The system will consider ZZZ as the End of the para and it will come out of it.