escapando espacio en la ruta del script de shell

0

He intentado ambos métodos para escapar del espacio en la ruta en el siguiente script:

#!/bin/bash -x
PGHOME="/Applications/pgAdmin 4.app/Contents/SharedSupport"
$PGHOME/psql --username postgres -c "drop database $1"

También he intentado cambiar la línea 2 a:

PGHOME=/Applications/pgAdmin\ 4.app/Contents/SharedSupport

En ambos casos, aparece el error de script:

  

./pg10-restoreDb.sh: línea 3: / Aplicaciones / pgAdmin: No existe tal archivo o directorio

Desde el shell, puedo ejecutar /Applications/pgAdmin\ 4.app/Contents/SharedSupport/psql no problem

¿Qué podría estar causando este error?

    
pregunta Black 06.03.2018 - 05:18

1 respuesta

3

Puede citar o escapar del espacio cuando defina la variable, pero luego también debe hacerlo entre comillas dobles:

#!/bin/bash -x
PGHOME="/Applications/pgAdmin 4.app/Contents/SharedSupport"
"$PGHOME/psql" --username postgres -c "drop database $1"
^            ^
|            |
    
respondido por el Gordon Davisson 06.03.2018 - 09:04

Lea otras preguntas en las etiquetas