Değişken genişletme ${parameter:-word}
, $parameter
ayarlanmışsa ve boş değilse (boş bir dize değil) değerini kullanır, aksi takdirde dizeyi kullanır word
.
:
Değerin atlanması, değerin boş olup olmadığını, yalnızca ayarlanıp ayarlanmadığını test etmez.
Bu , ayarlanmışsa ${PS1-}
değerine, $PS1
boş veya ayarlanmamışsa boş bir dizeye genişleyeceği anlamına gelir . Bu durumda, bu tam olarak aynı şekilde ${PS1:-}
dize sonra mümkün -
de boş olduğunu.
@Rakesh Sharma'nın belirttiği gibi "${PS1-}"
ve arasındaki fark "$PS1"
, her ikisi de değerine $PS1
veya ayarlanmamışsa boş bir dizeye genişleyecektir . Bunun istisnası set -u
etkin olduğu zamandır, bu durumda ayarlanmamış değişkenlerin genişletilmesi hataya neden olur . Ayarlanan (boş) varsayılan değer "${PS1-}"
bunu atlayarak bir PS1
diziyi hatasız olarak boş dizeye genişletir .
Bu standart sözdizimidir ( 70'lerin sonlarında Bourne kabuğunda ortaya çıkar ), diğer birkaç benzer genişleme gibi.