[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fehler in einer bash-Befehlszeile [ein bißchen OT]



Christian Bodenstedt schrob:

> On Fri, 12 Aug 2005 12:20:28 +0200
> schönfeld / in-medias-res <schoenfeld@in-medias-res.com> wrote:
>
>> Christian Bodenstedt schrieb:
>> > In deinem Script hast du also Hochkommata mit Backticks verwechselt.
>> > Um solche Fehler zu vermeiden, sollte man statt den Backticks die $()
>> > Syntax verwenden.
>> 
>> Ob das der richtige Weg ist? Den Shellscripting-Anfängern zu vermitteln
>> eine Syntax zu verwenden, die nicht auf (jede) andere Shell übertragbar
>> ist? Man will sich doch nicht auf die bash beschränken oder? Was ist
>> denn, wenn man auf einem System ein Script benötigt, dass keine bash
>> hat? Die bash nur für das Script installieren? Was ist, wenn auf dem
>> System aus irgendwelchen Gründen (irgendwelche Sicherheitsrichtlinien
>> o.ä.) keine Programme installiert werden dürfen?
>
> Danke für den Hinweis. Dass die $()-Syntax eine Bash-Erweiterung ist, war
> mir nämlich nicht bewusst.

Das ist sie nicht: Eingeführt wurde sie IIRC von der Korn-Shell;
Mittlerweile ist sie POSIX-Standardisiert, und sollte von den meisten
nicht-antiquarischen Shells unterstützt werden.

<http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03>

> Nach welcher Shell sollte man sich denn richten, wenn man portable Skripte
> schreiben möchte?

Wenn man nicht auf portabilität mit non-POSIX-Systemen angewiesen ist,
würde ich die $()-Syntax bevorzugen. Neben den schon genannten
Vorteilen ist hier auch das Verschachteln unkomplizierter, und das
Verhalten besser definiert.

Gruß
Andreas



Reply to: