[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: BASH
[Thread Prev] | [Thread Next]
- Subject: Re: BASH
- From: Christian Weisgerber <naddy@xxxxxxxxxxxx>
- Date: Wed, 6 Nov 2013 15:24:42 +0000 (UTC)
- To: uugrn@xxxxxxxxxxxxxxx
Thomas Stiefel <Tom@xxxxxxx> wrote: > > a) {} kann man in bash auch weglassen > > Die geschweiften Klammern braucht man nur, wenn der Variablenname > Zeichen enthaelt, die keine gueltigen Trennzeichen enthaelt. Das gibt es nicht.[1] Als Trenner fungiert ja gerade alles, was kein gueltiges Zeichen in einem Bezeichner ist. > A_B=XY > > echo $A_B => (nichts, da $A nicht definiert) > echo ${A_B} => XY Falsch, '_' ist kein Trenner, $A_B und ${A_B} sind gleichwertig. Es ist genau anders herum: Man benoetigt die geschweiften Klammern, wenn auf den Variablennamen weitere Zeichen folgen, die in einem Bezeichner gueltig sind. z.B. ${A}_B. Ebenfalls geklammert werden muessen mehrstellige Positionsparameter: $10 entspricht ${1}0, das zehnte ist ${10}. Und natuerlich werden die Klammern gebraucht, wenn die Variable nicht direkt ersetzt werden soll, sondern irgendwie modifiziert wird: ${foo:-bar} usw. usf. Es ist syntaktisch nie falsch, die geschweiften Klammern zu setzen, auch wenn sie nicht notwendig sind. Ob man jetzt PATH=/foo:$PATH oder PATH=/foo:${PATH} schreibt, ist reine Geschmackssache. -- [1] Na gut, es gibt einen Fall, aber der ist exotisch, nicht in der bash, und ich will hier nicht unnoetig verwirren. -- Christian "naddy" Weisgerber naddy@xxxxxxxxxxxx -- UUGRN e.V. http://www.uugrn.org/ http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/