What is "here" Document in Shell Scripts
The “here” Document
Frequently, a script might call on another script or utility that requires input. To run a script without operator interaction, you must supply that input within your script. The here document provides a means to do this. The syntax for the here document is:
command << Keyword input1 input2 ... Keyword
$ cat termheredoc.ksh #!/bin/ksh # Script name: termheredoc.ksh print "Select a terminal type" cat << ENDINPUT sun ansi wyse50 ENDINPUT print -n "Which would you prefer? " read termchoice print print "Your choice is terminal type: $termchoice"
$ ./termheredoc.ksh Select a terminal type sun ansi wyse50 Which would you prefer? sun Your choice is terminal type: sun
NOTE: All lines of the here document must be left-justified. Do not use leading spaces. The ending keyword must be on a line by itself.
#!/bin/ksh # This script automates installing the SUNWaudio software package. # # The assumption is the answers to the installation questions have # been documented by performing an actual install. Running the # script command prior to doing a package installation would # allow for such documentation. # # This software package only asks two questions: # Do you want to install these conflicting files [y,n,?,q] # Do you want to continue with the installation of [y,n,?] # # In each case the answer we will give is y for yes. Hence the two # lines containing y in the here document. print "About to install the SUNWaudio package." pkgadd -d spool SUNWaudio << ENDINPUT y y ENDINPUT