Ich muss ein Verzeichnis an PKG_CONFIG_PATH
anhängen . Normalerweise würde ich den Standard verwenden
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$(pyenv prefix)/lib/pkgconfig
aber PKG_CONFIG_PATH
wurde auf meinem System noch nicht eingestellt. Daher beginnt die Variable mit einem :
Zeichen, das angibt, zuerst im aktuellen Verzeichnis zu suchen. Ich möchte das nicht. Ich habe mich für Folgendes entschieden,
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$(pyenv prefix)/lib/pkgconfig
aber das sieht so hässlich aus. Gibt es einen besseren Weg? Was ist der geeignete Weg, um den Doppelpunkt bedingt anzuhängen, wenn und nur wenn die Variable bereits gesetzt wurde?
Akzeptierte Antwort:
Mit dem ${:+}
sind Sie auf dem richtigen Weg Erweiterungsoperator, Sie müssen ihn nur leicht modifizieren:
V=${V:+${V}:}new_V
Die ersten geschweiften Klammern werden zu $V
erweitert und der Doppelpunkt iff V
ist sonst schon auf nichts gesetzt – genau das, was Sie brauchen (und wahrscheinlich auch einer der Gründe für die Existenz des Operators).
Also in Ihrem Fall:
export "PKG_CONFIG_PATH=${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}$(pyenv prefix)/lib/pkgconfig"