Situação. Eu trabalho no Cygwin e há uma variável de ambiente do Windows que aponta para uma das pastas especiais:
ProgramFiles(x86)=C:\Program Files (x86)
Como você vê, o nome da variável contém parênteses. Tentativas ingênuas de ler o valor parecem não funcionar:
echo "${ProgramFiles(x86)}" # bad substitution
echo "${ProgramFiles\(x86\)}" # bad substitution
Tentei encontrar regras gerais sobre como escapar caracteres em nomes de variáveis, mas não consegui.
Pergunta. É possível usar uma variável cujo nome inclui parênteses ou outros símbolos incomuns?
PS No meu caso específico obtive o mesmo valor com cygpath -F 42
.