Xiang.Bao
Xiang.Bao

Reputation: 21

What's the difference between ${var=default} and ${var-default}

I see the doc here

${parameter-default}, ${parameter:-default} If parameter not set, use default.

and

${parameter=default}, ${parameter:=default} If parameter not set, set it to default.

I did some test and didn't find and different,anything i missed?

Upvotes: 0

Views: 44

Answers (1)

rob mayoff
rob mayoff

Reputation: 385860

The difference is that ${parameter=default} sets parameter if it was unset.

Here, ${x-foo} leaves x unset:

; unset x
; echo ${x-foo}
foo
; echo $x

;

But here, ${x=foo} sets x to foo:

; echo ${x=foo}
foo
; echo $x
foo
;

Upvotes: 2

Related Questions