mirror of https://github.com/tLDP/LDP
67 lines
1.7 KiB
Bash
67 lines
1.7 KiB
Bash
#!/bin/bash
|
|
# commentblock.sh
|
|
|
|
: <<COMMENTBLOCK
|
|
echo "This line will not echo."
|
|
This is a comment line missing the "#" prefix.
|
|
This is another comment line missing the "#" prefix.
|
|
|
|
&*@!!++=
|
|
The above line will cause no error message,
|
|
because the Bash interpreter will ignore it.
|
|
COMMENTBLOCK
|
|
|
|
echo "Exit value of above \"COMMENTBLOCK\" is $?." # 0
|
|
# No error shown.
|
|
echo
|
|
|
|
|
|
# The above technique also comes in useful for commenting out
|
|
#+ a block of working code for debugging purposes.
|
|
# This saves having to put a "#" at the beginning of each line,
|
|
#+ then having to go back and delete each "#" later.
|
|
# Note that the use of of colon, above, is optional.
|
|
|
|
echo "Just before commented-out code block."
|
|
# The lines of code between the double-dashed lines will not execute.
|
|
# ===================================================================
|
|
: <<DEBUGXXX
|
|
for file in *
|
|
do
|
|
cat "$file"
|
|
done
|
|
DEBUGXXX
|
|
# ===================================================================
|
|
echo "Just after commented-out code block."
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
######################################################################
|
|
# Note, however, that if a bracketed variable is contained within
|
|
#+ the commented-out code block,
|
|
#+ then this could cause problems.
|
|
# for example:
|
|
|
|
|
|
#/!/bin/bash
|
|
|
|
: <<COMMENTBLOCK
|
|
echo "This line will not echo."
|
|
&*@!!++=
|
|
${foo_bar_bazz?}
|
|
$(rm -rf /tmp/foobar/)
|
|
$(touch my_build_directory/cups/Makefile)
|
|
COMMENTBLOCK
|
|
|
|
|
|
$ sh commented-bad.sh
|
|
commented-bad.sh: line 3: foo_bar_bazz: parameter null or not set
|
|
|
|
# The remedy for this is to strong-quote the 'COMMENTBLOCK' in line 49, above.
|
|
|
|
: <<'COMMENTBLOCK'
|
|
|
|
# Thank you, Kurt Pfeifle, for pointing this out.
|