Die Bash setzt aus in Klammern eingeschlossenen Zeichenketten (durch Kommas getrennt) alle möglichen
Kombinationen zusammen:
user@sonne> echo {a,b}{1,2,3}
a1 a2 a3 b1 b2 b3
user@sonne> mkdir {bla,foo}{1,2}{a,b,c}
user@sonne> ls
bla1a bla1c bla2b foo1a foo1c foo2b
bla1b bla2a bla2c foo1b foo2a foo2c
|
Sind die Klammerausdrücke von konstanten Zeichenketten umgeben, werden diese Bestandteil der
generierten Zeichenkette:
user@sonne> touch part_{1,2,3}.txt
user@sonne> ls
part_1.txt part_2.txt part_3.txt
|
Geschweifte Klammern dürfen verschachtelt werden:
user@sonne> mkdir -p bsp/{ucb/{ex,edit},lib/{bla,foo}}
user@sonne> ls bsp/ucb/
edit ex
|
Tilde
Alle einer Tilde ~
folgenden Buchstaben bis zum ersten Slash /
oder Leerzeichen werden
von der Bash als Benutzername interpretiert und - falls dieser existiert - durch den Pfad zum Heimatverzeichnis
des Nutzers ersetzt:
user@sonne> echo ~user/
/home/user
|
Folgt der Tilde unmittelbar der Slash (oder ein Leerzeichen), so wird der Ausdruck als Heimatverzeichnis des
aktuellen Nutzers interpretiert:
user@sonne> echo ~/
/home/user
|
Folgt einer Tilde ein +
, so wird der Ausdruck durch den Wert der Variablen
PWD
(aktuelles Verzeichnis) ersetzt; folgt ein -
, betrifft es die
Variable OLDPWD
(vorheriges Verzeichnis):
user@sonne> cd /usr/src
user@sonne> echo ~+
/usr/src
user@sonne> echo ~-
/home/usr
|
Bei Variablenzuweisungen wird die Tildeerweiterung angewandt, falls die Tilde unmittelbar auf ein "=" folgt:
user@sonne> MYPATH=~/bin
user@sonne> echo $MYPATH
/home/user/bin
|