Eu também me deparei com esse espaço indesejado ao trabalhar com um banco de dados diferente. Claramente, scripts de shell e ferramentas como o SQLPlus são a coisa errada a ser usada para extrair dados de bancos de dados, mas há ocasiões em que é conveniente.
Minha solução é remover o espaço em branco inicial e final do resultado:
psnr() {
sqlplus -s USR/PASS@PROD << 'EOS' | sed -e $'s/^[ \t]*//' -e $'s/[ \t]*$//'
SET PAGESIZE 0
SET COLSEP ";"
SET FEEDBACK OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
select max_number-last_number from postalslip
where state = 'OPEN'
/
exit
/
EOS
}
Se ksh
não suportar a sintaxe $'...'
string, é fácil substituir:
# Original style
sed $'s/^[ \t]*//'
# Alternative style
T=$(printf "\t")
...
sed "s/^[ $T]*//"
Um conserto rápido e sujo alternativo é usar o shell para remover espaços em branco indesejados. Deixando sua função psnr()
inalterada, em vez disso:
echo "Today's result is: $PSNR" > $MAILTMP
você escreveria isto:
echo "Today's result is:" $PSNR > $MAILTMP