'.png)
Estou simplesmente tentando obter a saída de uma instrução sql e armazená-la na variável bash. Estou recebendo o erro "EOF inesperado ao procurar o erro `)' correspondente. Não vejo o que estou fazendo de errado. Por que estou recebendo esse erro?
var=$($ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
select status from v\$instance;
exit;
EOF
)
Responder1
O seu script está recuado assim? o delimitador do here-doc deve estar no início da linha. Isso funciona para mim:
#!/bin/bash
echo $(cat <<EOF
blah
EOF
)
Responder2
Ikkachu está correto ao dizer que o código, quando não recuado, deve funcionar bem em qualquer versão razoavelmente moderna do Bash. No entanto, eu acrescentaria que você pode achar mais fácil entender e depurar se usar uma "string aqui" em vez de um "documento aqui":
var=$(sqlplus / as sysdba <<< 'select status from v$instance; exit;')
Ou use um pipeline padrão:
var=$(echo 'select status from v$instance; exit;' | sqlplus / as sysdba)