Ich verstehe, dass die modernere $(...)Befehlssubstitutionssyntax der altbasierten Syntax vorgezogen wird `, da die Verschachtelung und die Escape-Syntax einfacher und weniger fehleranfällig sind.
Außerdem scheinen die meisten /bin/shMuscheln im modernen Gebrauch Folgendes zu unterstützen $(…):
- Bash
- ash (und damit BusyBox, also die meisten Embedded Linux)
- Strich
- FreeBSD / bin / sh
Und $(…)wird durch IEEE 1003.1 spezifiziert.
Ich habe also zwei sehr verwandte Fragen:
- Gibt es einen Grund, `bei der Neuentwicklung von Shell-Skripten zu verwenden, es sei denn, Sie kennen ein bestimmtes altes System, auf dem das Skript ausgeführt werden muss?
- Gibt es irgendeinen Grund, UNIX-Programmierschülern nicht nur das Schreiben beizubringen
$(...)und`nur als veraltete Variante zu diskutieren , auf die sie wahrscheinlich stoßen werden, wenn sie die Shell-Skripte anderer Entwickler lesen (und die sie möglicherweise benötigen, wenn sie mit einem wirklich alten oder nicht standardmäßigen System arbeiten) aus irgendeinem Grund)?
$()- Shift + 4,9, Shift + 0 - 5 Tastendrücke;
`...`. Es ist nur für die Abwärtsportabilität mit der Bourne-Shell vorgesehen (wie die Bourne-Shell^(genauso wie|) für die Abwärtsportabilität mit der Thomson-Shell). Beachten Sie jedoch, dass(t)cshdies nicht der Fall ist$(...)(aber es hat auch keinen Sinn, sie zu verwenden oder zu unterrichten).