/etc/launchd.conf setenv-Wert, der Leerzeichen enthält

7

In meiner Datei /etc/launchd.conf habe ich diese Zeilen hinzugefügt, um genau herauszufinden, wie Umgebungsvariablen mit globalem Gültigkeitsbereich erstellt werden, deren Werte Leerzeichen enthalten.

setenv foo1 123456
setenv foo2 "123456"
setenv foo3 123\ 456
setenv foo4 "123\ 456"
setenv foo5 "123 456"
setenv foo6 "123\\ 456"
setenv foo7 '123456'
setenv foo8 '123 456'
setenv foo9 '123\ 456'
setenv foo10 '123\\ 456'

Um zu sehen, was steckte und was die Ergebnisse waren, rannte ich set | grep foo. Das Ergebnis:

foo1=123456
foo2='"123456"'
foo7=''\''123456'\'''

Ich habe keine Ideen mehr. Ist das überhaupt möglich? Wenn ja, wie lautet die Syntax?

Distortum
quelle
2
Hier ist eine ähnliche Frage zu StackOverflow.
Emil
1
Vielen Dank. Ich habe es für eine Umgebungsvariable zum Laufen gebracht, aber ich weiß nicht, wie ich mehrere Umgebungsvariablen in derselben Plist-Datei erstellen kann. Deshalb versuche ich im Moment eine Reihe von Dingen, damit dies funktioniert.
Distortum
1
Ich musste zwei Umgebungsvariablen erstellen, sodass ich sie schließlich in zwei separaten Plist-Dateien erstellte. Es ist ein äußerst ausführlicher Ersatz für etwas so Einfaches, das Apple uns in Mountain Lion weggenommen hat.
Distortum

Antworten:

1

Verwenden Sie exportanstelle von setenv.

export foo1=123456
export foo2="123456"   # foo2 should now have the same value as foo1   
export foo3=123\ 456
export foo4="123 456"  # foo4 should now have the same value as foo3
Hundehaare
quelle
Das funktioniert nicht . Der exportBefehl (der keine Argumente akzeptiert) exportiert einfach die gesamte Umgebung als eine Reihe von Befehlen, die für die Übergabe an eine Shell geeignet sind. Zum Beispiel:SHELL="/bin/bash"; export SHELL;
LS
Wie in Ihrem Beispiel gezeigt, exportiert export nur die benannte Variable, nicht die gesamte Umgebung.
Joe Block