Node:Comments, Next:Quoting, Previous:Executable Scripts, Up:Running gawk
awk
ProgramsA comment is some text that is included in a program for the sake of human readers; it is not really an executable part of the program. Comments can explain what the program does and how it works. Nearly all programming languages have provisions for comments, as programs are typically hard to understand without them.
In the awk
language, a comment starts with the sharp sign
character (#
) and continues to the end of the line.
The #
does not have to be the first character on the line. The
awk
language ignores the rest of a line following a sharp sign.
For example, we could have put the following into advice
:
# This program prints a nice friendly message. It helps # keep novice users from being afraid of the computer. BEGIN { print "Don't Panic!" }
You can put comment lines into keyboard-composed throwaway awk
programs, but this usually isn't very useful; the purpose of a
comment is to help you or another person understand the program
when reading it at a later time.
Caution: As mentioned in
One-Shot Throwaway awk
Programs,
you can enclose small to medium programs in single quotes, in order to keep
your shell scripts self-contained. When doing so, don't put
an apostrophe (i.e., a single quote) into a comment (or anywhere else
in your program). The shell interprets the quote as the closing
quote for the entire program. As a result, usually the shell
prints a message about mismatched quotes, and if awk
actually
runs, it will probably print strange messages about syntax errors.
For example, look at the following:
$ awk '{ print "hello" } # let's be cute' >
The shell sees that the first two quotes match, and that
a new quoted object begins at the end of the command line.
It therefore prompts with the secondary prompt, waiting for more input.
With Unix awk
, closing the quoted string produces this result:
$ awk '{ print "hello" } # let's be cute' > ' error--> awk: can't open file be error--> source line number 1
Putting a backslash before the single quote in let's
wouldn't help,
since backslashes are not special inside single quotes.
The next subsection describes the shell's quoting rules.