mosfet@??? wrote:
>
> Bonjour,
Salut,
> Je desirerais automatiser quelques taches a l'aide d'un script shell;
>
> ---script d'echantillonage original--
> #!/usr/bin/expect
^^^^^^^^^^^^^^^
cette ligne indique que ton script est interprèté par l'outil
'expect', et non un shell standard ;
d'après mes souvenirs, il s'agit d'un dérivé de Tcl !
> set timeout 1
> eval spawn "./miniterm"
>
> send "pws0\r\n"
> expect ">"
> send "prs\r\n"
> expect ">"
>
> send "pws16\r\n"
> expect ">"
> send "prs\r\n"
> expect ">"
>
> send "pws32\r\n"
> expect ">"
> send "prs\r\n"
> expect ">"
> ---fin script echantillonage-----------
>
> Je desire utiliser une boucle de type for de la facon suivante:
> for (i=0; i<=128; i=i+16)
> {
> }
>
> 1) Comment cela est-il possible grace a un sript shell ??
Pour ton cas précis, tu peux écrire :
for {set i 0} {$i <= 128} {incr i 16} {
send "$i\r\n"
expect ">"
send "prs\r\n"
expect ">"
}
> 2) Ensuite, le script principal, appelant celui-ci formate la sortie
> avec un grep, puis compte le nombre de lignes (wc -l); si le nb de lignes
> != 9 alors relancer le programme de conversion jusqu'a ce que le nb de
> lignes soit egal a 9.
>
> en gros:
> while (nblignes!=9)
> {
> echantillone > log
> nblignes='wc -l log'
> }
> toujours en shell, comment cela est-il possible ?
en shell de base (sh, ou bourne shell), tu peux écrire :
#!/bin/sh
nb=0
while ( test $nb -ne 9 ) do
nb=`echantillone | wc -l`
done
> Merci. Fabien.
>
> Fabien BLANC-PAQUES | fabien@???