Shell Scripting - Part 3

From CDOT Wiki
Revision as of 09:11, 13 October 2015 by Msaul (talk | contribs)
Jump to: navigation, search

Purpose of Shell Scripting - Part 3

Bash Shell Scripting Tips

  • The Here Document

    A neat little trick involving a special type of redirection of stdin ( << ) that allows input to be redirected to a command from within the command. The name relates to where the stdin is contained: not in a file, but "here in the command itself". A character (like +) is used to mark the boundary of stdin. It is important that the ending boundary only contains a line with that matching character (eg +); otherwise the stdin will continue to be read! This command is a convenience way to display multiple lines on that screen, but this command can be used with any Linux command that accept stdin.

    Examples (try at the shell prompt)

    cat <<+
    This is a test message
    This is the second line
    +


    mail -s "test message" youremailaddr <<+
    This is a test message
    I hope you like it.

    +

    tr [a-z] [A-Z] <<+
    i like ops235
    i love scripting.
    +


  • Using sed to Manipulate Text

    The Linux command sed stands for Streaming Editor which is an effective way to manipulate a text file, output sent from a command, or from within a "here document". This command can manipulate matching text on a variety of criteria (such as line number, regular expression match, etc). Commands can then be used for manipulation such as omitting, printing, substituting, adding, inserting, etc. The sed option -n suppresses display of text so the print (p) command can be used; otherwise, the text will be displayed (with edits via the sed command instructions). Results of text manipulation with sed can be stored in a variable using command substitution, or redirected to a file. NEVER redirect the stdout from a sed command to the same input file (or the input file will be destroyed)!

  • Examples (try at the shell prompt)

    sed 's/|/ /g' <<+
    I|like|weekends!
    +


    sed 's/$/\n/g' <<+
    This text
    should be
    double-spaced!

    +


Online Scripting Resources

If you require additional practice in creating shell scripts and using the vi text editor, run the commands in your Matrix account:


Scripting Content