[sage] Eigenartige Zeile im Bash-Script

Rainer Thierfelder (s+c) r.thierfelder at science-computing.de
Thu Oct 30 09:56:56 CET 2014


Moin!

On Thu Oct 30, 2014 at 09:30:24AM +0100, Hartmut Goebel wrote:
> Schönen guten Morgen,
> 
> in einem bash-Script bin ich auf Zeilen dieser Art gestoßen. Ich habe
> versucht, das in der man-page zu finden, aber ohne Erfolg. Kennt jmd
> eine Beschreibung? Ist das bash-spezifisch oder auch in anderen Shells
> möglich?
> 
> : ${IP=127.0.0.1} # kein Doppelpunkt vor dem =
> 
> (Der Doppelpunkt am Anfang der Zeile ist klar, der Rest nicht mehr).
> 
> Die Wirkung ist, dass die Variable "IP" nur gesetzt wird, wenn sich
> nicht existiert. Damit unterscheidet es sich von
> 
> ${IP:=127.0.0.1} # mit Doppelpunkt vor dem =
> 
> das die Variable auch setzt, wenn sie existiert, aber leer ist.
> 

ABS to the rescue:
http://www.tldp.org/LDP/abs/html/parameter-substitution.html#PARAMSUBREF

In meiner Manpage steht dazu folgendes:
"When not performing substring expansion, using the forms documented below,
bash tests for a parameter that is unset or null.  Omitting the colon
results in a test only for a parameter that is unset."

(EXPANSION -> Parameter Expansion, im Text oberhalb der Beispiele mit den
Doppelpunkten)

Ob das jetzt Bash-spezifisch ist oder auch in anderen Shells gilt, kann ich
jetzt nicht sagen.

Gruß,
Rainer
-- 
Rainer Thierfelder              science + computing ag
IT-Services Tuebingen           www.science-computing.de
                                GnuPG-KeyID: 9D244B55
-- 
Vorstandsvorsitzender/Chairman of the board of management:
Gerd-Lothar Leonhart
Vorstand/Board of Management:
Dr. Bernd Finkbeiner, Michael Heinrichs, Dr. Arno Steitz
Vorsitzender des Aufsichtsrats/
Chairman of the Supervisory Board:
Philippe Miltin
Sitz/Registered Office: Tuebingen
Registergericht/Registration Court: Stuttgart
Registernummer/Commercial Register No.: HRB 382196




More information about the SAGE mailing list