Kann mir mal grad jemand auf die Sprünge helfen? Ich habe eine Datei, in der zeilenweise diverse Strings stehen, die wiederrum mit Pipe-Chars nochmal in Segmente aufgeteilt sind, z.B. sowas:
Code:
blabla | ${XDG_CONFIG_DIR:-${HOME}/.config}/blabla
blablabla | barfoo
Wie man bereits erkennt sind in diesen Segmenten Variablen drin. Diese muss ich mit einem zsh-Script (zsh, nicht bash) auflösen. Lese ich die Datei einfach mit einem
while read ein, sind sie es nämlich nicht. Und ein
eval würde ich dann doch ganz gerne vermeiden.
Ich wäre auch bereit das Ganze in Python 3 umzusetzen, aber
os.path.expandvars() löst nur
$foo und
${foo} auf, beherrscht jedoch keine Parameter Expansion. Hat da jemand eine Idee?
Edit: Ich hab übrigens volle Kontrolle über Script und Datei. Falls jemand eine ganz andere Idee hat, wie man sowas wie einen Defaultwert festlegt, nur her damit.
Edit 2: Ich hab herausgefunden, dass
envsubst existiert. Kann aber auch nicht mehr als
os.path.expandvars()...