So exportieren Sie dot-separierte Umgebungsvariablen

8

Ausführung von

%Vor%

Gibt mir

%Vor%

Ist es möglich, Systemeigenschaften mit einem Punkt im Inneren zu haben? Wenn ja, wie geht das?

    
Petro Semeniuk 22.02.2013, 03:38
quelle

4 Antworten

15

Wie andere schon gesagt haben, erlaubt bash das nicht, also müssen Sie Ihre bevorzugte Skriptsprache dafür verwenden. Zum Beispiel in Perl:

%Vor%

Dadurch wird eine Subshell-Bash mit der Umgebungsvariablen property.name gestartet, aber Sie können immer noch nicht auf diese Umgebungsvariable von bash zugreifen (obwohl Ihr Programm sie sehen kann).

Bearbeiten : @MarkEdgar kommentierte, dass der Befehl env auch funktioniert:

%Vor%

Wie üblich benötigen Sie nur Anführungszeichen, wenn Sie Sonderzeichen vor der Shell schützen müssen oder Leerzeichen in den Eigenschaftsnamen oder -wert aufnehmen möchten.

    
Adrian Pronk 22.02.2013, 03:55
quelle
3

Ich habe einen besseren Teil dieses Nachmittags damit verbracht, herauszufinden, wie ich auf eine von Jenkins gesetzte Eigenschaft zugreifen kann (um einen Jobparameter zu übergeben, verwendet jenkins das Eigenschaftsformat mit einem Punkt) - das war ein guter Hinweis von Adrian und ja, es funktioniert zum Lesen Eigenschaften im Skript auch. Ich wusste nicht, was ich tun sollte, aber dann habe ich es versucht:

%Vor%

Das hat eigentlich ganz gut funktioniert. Aber natürlich funktioniert das in einer Shell, die bereits mit der in der Umgebung gesetzten Eigenschaft gestartet wurde, d. H. In Adrians Beispiel könnte dies in einem Skript funktionieren, das von einer Bash-Instanz gestartet wurde, die in einem von ihm bereitgestellten Perl-Beispiel aufgerufen wurde. Es wäre nicht, wenn dieses Perl-Sniplet nur direkt nach seinem Perl-Beispiel in die selbe Shell eingefügt würde.

Wenigstens habe ich heute Nachmittag etwas gelernt, also ist die ganze Zeit keine Verschwendung.

    
umghhh 19.07.2013 21:03
quelle
2

Wenn Sie diese Eigenschaften zum Ausführen einer Anwendung exportieren, können einige Programme das Festlegen der Systemeigenschaft als Option unterstützen und . im Eigenschaftsnamen zulassen.

In der Java-Welt unterstützen die meisten Tools die Einstellung der Systemeigenschaft durch -D option, z. Sie können die Systemeigenschaft mit einem Punkt wie diesem -Dproperty.name=property.value festlegen.

    
Wenbing Li 06.08.2014 03:20
quelle
1

Bash erlaubt nur '_' und alphanumerische Zeichen in Variablennamen. Das '.' ist nicht erlaubt.

Ссылка

    
sashang 22.02.2013 03:45
quelle

Tags und Links