Je me connecte à la base de données Oracle et lance une requête et attribue la sortie à la variable Mais quand je fais écho à la valeur de la variable, elle n'est pas imprimée correctement.
count=`sqlplus -s $configuser/$configpass@$ORACLE_SID <<END
set pagesize 0 feedback off verify off heading off echo off;
select max(cust_id) from cutomers
exit;
END`
echo $count
La requête renvoie un résultat correct lorsqu'elle est déclenchée sur la base de données. Mais la variable "count" a une valeur incorrecte.
Réponses:
Le mot de fin ici-doc doit être le seul caractère de la ligne: pas de retrait autorisé. Aussi, utilisez
$()
au lieu de backticks - ils sont emboîtables.http://www.gnu.org/software/bash/manual/bashref.html#Here-Documents
la source
<<-END
notation. Pas d'espaces, TABS!la source
Vous devez utiliser le point-virgule au bon endroit.
la source
END
extrémité doit être alignée à gauche, sans espace devant.