jilles accurately advises that, in the context of shell redirection, the `:'

builtin is processed specially and thus the `: > file' syntax for example
will cause premature termination of the current shell on redirection-error.

The `true' builtin on the other-hand is not included in this special
processing (for compatibility reasons to satisfy legacy scripts programmed
for systems where `true' is not a builtin).

Change bare `: > file' syntax into `true > file' syntax to prevent premature
shell termination in the event of redirection-error.

NOTE: Instances of `: > file' that appear within a sub-shell have been left
unmodified as these will not cause premature termination of the main script.

Reviewed by:	jilles, adrian (co-mentor)
Approved by:	adrian (co-mentor)
This commit is contained in:
Devin Teske 2012-09-22 22:16:07 +00:00
parent efb0814c24
commit 437f652038

View File

@ -610,7 +610,7 @@ f_install_zoneinfo()
# Save knowledge for later
if [ "$REALLYDOIT" -a $rv -eq $SUCCESS ]; then
if : 2> /dev/null > "$_PATH_DB"; then
if true 2> /dev/null > "$_PATH_DB"; then
cat <<-EOF > "$_PATH_DB"
$zoneinfo
EOF