Você pode querer fazer algo assim:
db_connect="user/pass@db"
output=$(
sqlplus -s "$db_connect" <<'END' | sed '/^$/d'
set heading off
select value from v$parameter where name='spfile';
END
)
As opções -s
e set heading off
sqlplus são destinadas a minimizar a saída irrelevante. sed '/^$/d'
é excluir linhas vazias. O resultado em $output
deve ser uma sequência vazia (para resultado nulo) ou a (s) linha (s) da saída da consulta.
Observe que o terminador END
heredoc não deve ter nenhum outro caractere nessa linha. É por isso que não é recuado como as outras linhas.
Então você pode fazer:
if [[ -n "$output" ]]; then
stuff if there is output
else
stuff if there is null output
fi