'%20coincidente.png)
Simplemente estoy tratando de obtener el resultado de una declaración SQL y almacenarlo en una variable bash. Recibo un error "EOF inesperado mientras busco `)' coincidente. No veo qué estoy haciendo mal. ¿Por qué recibo este error?
var=$($ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
select status from v\$instance;
exit;
EOF
)
Respuesta1
¿Tu guión tiene una sangría así? el delimitador del here-doc debe estar al principio de la línea. Esto funciona para mí:
#!/bin/bash
echo $(cat <<EOF
blah
EOF
)
Respuesta2
Ikkachu tiene razón en que el código, cuando no tiene sangría, debería funcionar bien en cualquier versión razonablemente moderna de Bash. Sin embargo, añadiría que puede que le resulte más fácil de entender y depurar si utiliza una "cadena aquí" en lugar de un "documento aquí":
var=$(sqlplus / as sysdba <<< 'select status from v$instance; exit;')
O utilice una tubería estándar:
var=$(echo 'select status from v$instance; exit;' | sqlplus / as sysdba)