Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question script Unix KSH

3 réponses
Avatar
scratt
Bonjour,
voici un script s.sh tout simple :

<test> /home/oracle9i#cat s.sh

sqlplus -s "/ as sysdba" << Fin
select count(*) from dba_objects where owner=3D'TRAINING';
Fin

ce scrip fonctionne.
par contre il ne marche pas quand je le place dans une boucle while
comme ce-ci :
<test> /home/oracle9i#cat t

function mysql
{
sqlplus -s "/ as sysdba" << Fin
select count(*) from dba_objects where owner=3D'TRAINING';
Fin
}

while true
do
echo toto
mysql
done

<test> /home/oracle9i#t
t[2]: 0403-057 Erreur de syntaxe =E0 la ligne 4 : `<' sans
correspondance.
<test> /home/oracle9i#


Quelqu'un a t il une idee ?

merci

3 réponses

Avatar
Stephane CHAZELAS
2008-08-1, 06:33(-07), scratt:
[..]
function mysql



Ca, c'est la syntaxe ksh, pas sh.

{
sqlplus -s "/ as sysdba" << Fin
select count(*) from dba_objects where owner='TRAINING';
Fin
}



mysql() {
sqlplus -s "/ as sysdba" << Fin
select count(*) from dba_objects where owner='TRAINING';
Fin
}


Le "Fin" doit etre en debut de ligne. Ou sinon, tu peux utiliser
<<-Fin, auquel cas, tu peux faire preceder les lignes d'une
tabulation.

--
Stéphane
Avatar
scratt
On 1 août, 15:39, Stephane CHAZELAS
wrote:
2008-08-1, 06:33(-07), scratt:
[..]

> function mysql

Ca, c'est la syntaxe ksh, pas sh.

> {
> sqlplus -s "/ as sysdba" << Fin
> select count(*) from dba_objects where owner='TRAINING';
> Fin
> }

mysql() {
sqlplus -s "/ as sysdba" << Fin
select count(*) from dba_objects where owner='TRAINING';
Fin

}

Le "Fin" doit etre en debut de ligne. Ou sinon, tu peux utiliser
<<-Fin, auquel cas, tu peux faire preceder les lignes d'une
tabulation.

--
Stéphane



Effectivement ca merche,
merci.
Avatar
Olivier Miakinen
Le 01/08/2008 16:20, scratt a écrit :
[citation intégrale]



<http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html>

Effectivement ca merche,



Quand ça ne merche plus, c'est que ça marde.