Question re: braces and quotes
- From: "Peter" <peter@xxxxxxxxxxxxx>
- Date: Mon, 30 Oct 2006 12:21:13 GMT
I was reviewing the Suse/Gentoo run-crons script, and comparing it with
some elementary scripts I had written. All of a sudden, I realized that
despite reading the docs and advanced scripting manual, I really did not
have a good grasp on the concept of when to quote, enclose in a brace, etc.
This snippet crystallizes my confusion. As written, the variable
definition for LOCKFILE uses braces, but I found that it made no
difference whether or not I used braces, quotes, or any combination. I
understand that certain test contructs, such as [ -n... ] require quotes,
and if I want to manipulate a variable, braces are useful for
substitution, but could someone please explain if the first assignment of
LOCKFILE is proper, and why? For that matter, when would the assignment to
LOCKDIR have to be quoted? If there is a whitespace?
Thanks a lot!
#!/bin/sh
LOCKDIR=/var/spool/cron/lastrun
LOCKFILE=${LOCKDIR}/lock
echo "braces no quotes $LOCKFILE"
LOCKFILE="${LOCKDIR}"/lock
echo "braces quote $LOCKFILE"
LOCKFILE=$LOCKDIR/lock
echo "no braces no quote $LOCKFILE"
LOCKFILE="$LOCKDIR"/lock
echo "no braces quote $LOCKFILE"
--
Peter
.
- Follow-Ups:
- Re: Question re: braces and quotes
- From: Barry Margolin
- Re: Question re: braces and quotes
- Prev by Date: Top 10 posters comp.unix.shell
- Next by Date: Re: Question re: braces and quotes
- Previous by thread: find a string in files
- Next by thread: Re: Question re: braces and quotes
- Index(es):
Relevant Pages
|