El script bash no continúa después de ejecutar la consulta con sqlplus

El script bash no continúa después de ejecutar la consulta con sqlplus

aquí estoy tratando de ejecutar una consulta normal con sqlplus y volcar el resultado en un archivo CSV, luego tengo otro trabajo que hacer, tengo un problema, mi secuencia de comandos no continúa después de ejecutar la consulta sqlplus, solo ve el resultado y vuelca la salida en archivo csv pero no continúa. Tampoco sé cómo volcar los datos sin ver el resultado.

#!/bin/bash

cd /dir/test_dir

    sqlplus -s test/test <<EOF
    set colsep ,
    set underline off,
    set headsep off,
    set feedback off,
    set long 99999,
    set linesize 32767,
    set trimspool on,
    spool report(date +%Y-%m-%d).csv
    select a.s, a.d, a.t, a.ww, a.tt from test a;
    exit;
    EOF
cd ../

mkdir test/
.
.
.

Respuesta1

La línea que contiene EOFconespacios en blanco principalesno termina el documento aquí que comienza con <<EOF. Úselo EOFsin espacios en blanco iniciales. En lugar de

    EOF

Deberías usar

EOF

Alternativamente, cambie la línea con redirección sqlplus -s test/test <<-EOFy luego sangría con tabulaciones.

Si el operador de redirección es <<-, todos los caracteres de tabulación iniciales se eliminan de las líneas de entrada y de la línea que contiene el delimitador. Esto permite sangrar los documentos aquí dentro de los scripts de shell de forma natural.

(fuente)

información relacionada