<![CDATA[Forum Ubuntu-fr.org / scrit sur le bash]]> http://forum.ubuntu-fr.org/viewtopic.php?id=28719 Sat, 18 Feb 2006 13:07:50 +0000 FluxBB <![CDATA[Réponse à : scrit sur le bash]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=204490#p204490 Bonjour,
oui vous avez raison (requiem), j'ai précipité avant de poser ma question. A part les fautes d'inattention le script est  fait pour un shell csh et no bash. c'est pour cela que j'ai tjrs des erreurs de syntax.

Example de commande sur le bash:

pour assigner une variable il faut faire
[img]a=1
ou
a="toto"[/img]

pour additionner des entiers, il faut faire l'opération entre $(( ...))
par exemple:
[img]a=1
b=$(($a+2*$a+9))[/img]

Pour les while c'est
[img]while test
  do
    ...(commandes)
    ...
  done[/img]
(en général, bash n'aime pas trop les espaces...)
Vous trouverez une description courte et bien faite du bash sur :
http://www.linux-kheops.com/doc/cours/j … ation.html
(site qui contient d'autres informations intéressantes, voir http://www.linux-kheops.com/doc/cours/jgourdin/).


Le plus simple si vous avez des scripts applicable sur le shell csh  est de passer tout simplement au shell tcsh ou csh en tapant sur le terminal:  csh . Attention ce n'est pas sûre que ton système reconnait cette commande, c'est le cas de mon système alors je profite de poser la question suivante:
[img]comment passer du bash au csh d'une façon provisoir??????[/img]

Il existe aussi un ordre qui change votre shell de démarrage (cad que la prochaine fois que vous vous loggerez, vous serez en tcsh), ces ordre est chsh (pour "change shell"). De temps en temps, sur certains système un peu vérouillé, l'administrateur interdit l'usage de ce programme pour raisons de sécurité (mais ce n'est pas toujours le cas).

Vous l'utilisez comme suit
1°) voir le chemin absolu du tcsh en faisant:
[img]which tcsh[/img]
(notez le chemin, généralement, /bin/tcsh)
2° faire:
[img]chsh /bin/tcsh[/img]
(ou un autre chemin si vous avez noté un autre chemin absolu pour le tcsh, puis se delogger et se relogger, vous devriez être sous tcsh)

ciao

]]>
Sat, 18 Feb 2006 13:07:50 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=204490#p204490
<![CDATA[Réponse à : scrit sur le bash]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=204300#p204300 petite question (hors sujet):

Ou peut-on apprendre le Bash ?
si quelqu'un peut me conseille un bon site sympa pour apprendre et débuter
merci wink

]]>
Sat, 18 Feb 2006 09:55:13 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=204300#p204300
<![CDATA[Réponse à : scrit sur le bash]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=203736#p203736 -Tu as oublié le do dans ton while
-la syntaxe de ton premier if n'est pas correct : il faut le fermer avec un fi et le then est mal placé
-ton utilisation de la fonction set n'est pas correct, elle sert à découper le contenu d'une variable en plusiers mots et pas à faire une affectation.

Mais même avec ces changements, il reste du boulot.
Bon courage wink

]]>
Fri, 17 Feb 2006 18:43:30 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=203736#p203736
<![CDATA[scrit sur le bash]]> http://forum.ubuntu-fr.org/viewtopic.php?pid=203600#p203600 Bonjour,
Je suis entrain d'apprendre l'usage des script sur le bash (biensûre sur ubuntu). voici le script:
#!/bin/bash
#croissance de population
#test des arguments

if  ($argv !=5) then
   echo "quatre arguments requis \!"
   exit 1

set pop = $1
set max = $2
set tox = $3
set mxp = $4
set res = $5

@ i = 0

echo $i  $pop > $res

while  $i < $max
set pop = `(echo "scale = 6; $pop + ( $pop * $tox * ( 1.0 - ( $pop / $mxp ) ) ) ") | bc -l `
    # on verifie si pop est négatif
    set png = ` echo "$pop < 0" | bc -l `
     if ( $png == 1 ) then
           set pop = 0
     fi
   @i++
  echo $i $pop >> $res
done

quand je lance le script il me dit:

./croissance-non-lineaire.sh: line 28: syntax error near unexpected token `done'
./croissance-non-lineaire.sh: line 28: ` done'

la ligne 28 correspont à la dernière "done", alors j'ai changé done par exit ou end ça ne marche pas.

merci pour vos remarques

]]>
Fri, 17 Feb 2006 16:19:43 +0000 http://forum.ubuntu-fr.org/viewtopic.php?pid=203600#p203600