Hier gibt es kein spezielles Konzept. Stattdessen ist alles in der Shell eine Literalzeichenfolge, es sei denn, Sie verwenden explizit eine Erweiterung. Diese Entwurfsentscheidung erleichtert die Zuweisung von Literalwerten. Dies ist der Hauptanwendungsfall für Zuweisungen:
varname=value
sucht nicht nach einer aufgerufenen Variablen value, sondern verwendet die Zeichenfolge valuewörtlich. In Bash sind die meisten „Sonderzeichen“ wie + - /usw. in keiner Weise besonders - sie sind nur Teil von wörtlichen Wörtern, genau wie alphabetische Zeichen.
Die Erweiterungssyntax ermöglicht es uns, Werte einfach in eine Vorlage einzubetten, z
echo "Hello ${name}!"
(Beachten Sie, dass in der Shell Anführungszeichen Zeichenfolgen mögen '…'oder "…"nicht begrenzen, sondern stattdessen ändern, welche Erweiterungen angewendet werden. Einfache Anführungszeichen unterdrücken alle Erweiterungen und die Wortaufteilung, doppelte Anführungszeichen unterdrücken die Wortaufteilung und die Glob-Erweiterung, nicht jedoch die variable Erweiterung, die arithmetische Erweiterung (nur Bash). ., oder die Befehlssubstitutions Die folgenden Worte sind äquivalent: foo\ bar, foo' 'bar, 'foo bar').
Eine Konsequenz des Ansatzes „Alles ist standardmäßig eine Zeichenfolge“ ist, dass Programme, die nicht nur einfache Zeichenfolgen verwenden, komplizierter werden. Die Array-Syntax von Bash ist notorisch verwirrend. Die arithmetische Erweiterung ist nicht offensichtlich. Solche Programme eignen sich jedoch nicht am besten für Shell-Skripte.
Empfohlene Lektüre: Die POSIX-Beschreibung der Shell-Syntax und -Semantik: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html