2016-06-08 14 views
0

Mit Bash von msys2 auf Windows 10, ich kann nicht scheinen, eine Variable zu einer Windows-Umgebungsvariablen mit parens, dh '(', in einem Bash-Skript. Zum BeispielExpand Bash-Umgebungsvariable mit '('

p86="$PROGRAMFILES(x86)" 

nicht funktioniert, erweitert es die env Variable $PROGRAMFILES. ich habe mit Schrägstrichen versucht zu entkommen, das heißt. „$ Programme \ (x86 \)“, aber das funktioniert nicht. gibt es eine Möglichkeit, um diesen in bash? oder sind Parens in erweiterten Variablen nicht zulässig ?.Alle Windows-Variablen sind in der Prozessumgebung verfügbar.

+0

Was ist der Wert von 'echo $ p86' nach der Deklaration? – heemayl

Antwort

1

Normalerweise würden Sieverwenden 10 eine Variable zu dereferenzieren, zB:

echo "${a}bc" 

wird die Variable $a und dann wörtlichen bc drucken.

Versuchen:

p86="${PROGRAMFILES(x86)}" 

Alternative sollten Sie die Ausgabe von env überprüfen, um zu sehen, ob die Variable vorhanden ist:

env | grep PROGRAM 
+1

@jenesaisquoi Ein Hack, nicht neu gestartet könnte sein, den Wert von 'env':' env | grep -P '(? <= ProgramFiles \ (x86 \) =). * $' 'oder' env | awk -F = '$ 1 == "Programmdateien (x86)" {print $ 2}' – andlrc

0

den Befehlsprozessor Windows-Anwendung:

PFX86="$(cmd //c 'echo %ProgramFILES(x86)%')"