Es gibt zwei unterschiedliche Schreibweisen für die Befehlssubstitutions
FOO=$(echo bar)
und
FOO=`echo bar`
Soviel ich weiß, die erste Methode in heftiger Schlag definiert ist, während die zweite in sh
definiert ist.
Betrachten Sie die folgende Verwendung der Befehlsersetzung in einem sh
Skript.
#!/bin/sh
FOO=$(echo bar)
Macht das unter die Definition von bashism?
bashisms, das heißt Funktionen, die durch POSIX (nicht funktionieren in dash oder allgemeine /bin/sh) nicht definiert ist.
Es gibt 2 gute Gründe, immer die modernere (und meiner Meinung nach richtige) Version zu verwenden. $() ist fast unendlich lesbarer als Backticks, und $ ($()) ist nestbar, was gelegentlich ein großer Vorteil ist. Es gibt heutzutage keinen guten Grund, Backticks zu benutzen. –