question about disk_var.sh
andrew bezella
abezella at archive.org
Fri Aug 1 18:42:24 CEST 2014
On Fri, 2014-08-01 at 15:58 +0200, Thomas Neumann wrote:
[...]
> SWAPLIST=${SWAPLIST:-"/dev/sda2"}
> BOOT_DEVICE=${BOOT_DEVICE:-"/dev/sda"}
> ROOT_PARTITION=${ROOT_PARTITION:-/dev/sda1}
> BOOT_PARTITION=${BOOT_PARTITION:-/dev/sda1}
>
> (Same output for setup_storage 1.5 and 1.6.)
>
> Sourcing the file and printing the variables does indeed yield the expected
> values.
>
> a) can someone confirm his setup_storage generates the same strange values?
still using setup-storage 1.3, doesn't generate that output.
> b) can someone explain what kind of bash trickery is going on here?
it's returning default values for the variables if they're unset/empty.
the ${PARAMETER:-WORD} syntax says "if PARAMETER is unset or empty,
return WORD."
note that there is a difference between ":-" and ":=", and that the
latter might be better in this case. the shorter ${PARAMETER:=WORD}
would assign the value of WORD to PARAMETER in the unset/empty case. in
my head ":-" is for returning defaults, ":=" is for assigning them. but
please correct me if i'm off-base, as i've only recently grokked the
difference.
ex:
$ unset MYVAR
$ echo "${MYVAR:-test}"
test
$ echo $MYVAR
<- intentionally empty lines
$ ${MYVAR:-test} |
$ echo $MYVAR |
<-
$ ${MYVAR:=test}
$ echo $MYVAR
test
see the "Parameter Expansion" portion of BASH(1) or
http://wiki.bash-hackers.org/syntax/pe for add'l info
hth
andy
--
andrew bezella <abezella at archive.org>
Internet Archive
More information about the linux-fai
mailing list