A citação parece geralmente bem, mas você provavelmente está com problemas com esta linha:
export JAVA_HOME=${"C:\Java\"}
O primeiro uso de "
não é escapado, enquanto o segundo é. O caractere '\'
atua como escape em scripts de shell, alterando o significado do caractere a seguir. O shell não pode dizer que você pode ter pretendido fornecer uma barra invertida, por exemplo, em uma porta Cygwin ou MinGW. Se você fez , dobrar cada uma das barras invertidas é a maneira de fazer isso.
Algo a verificar: se o seu tempo de execução irá traduzir barras para barras invertidas, por exemplo, para apaziguar um sistema Windows subjacente. Se você puder, isso torna o script mais fácil de trabalhar.
Enfrentando um comentário, em
export JAVA_HOME=${"C:\Java\"}
os ${
e }
não são úteis. Você pode fazer o que é necessário com apenas
export JAVA_HOME="C:\Java\"
A expansão do parâmetro '$ { and '}
. Você poderia, em princípio, realizar uma substituição dentro das chaves, por exemplo, para alterar as barras para barras invertidas:
FORWARD_HOME='C:/Java/'
export JAVA_HOME=${FORWARD_HOME//\//\}
Leitura adicional:
- exporte JAVA_HOME com espaços no Cygwin
- Como definir JAVA_HOME no cygwin
-
3.5.3 Expansão do Parâmetro do Shell , em particular
${parameter/pattern/string}
- Substituir a barra invertida por barra invertida dupla em dupla citações