# petits scripts shells



## tarikbenn (28 Septembre 2006)

Salut tous le monde  

J'ai besoin de faire un script shell qui fait certaines fonctions . Je veux le faire moi même , mais je serai amener à poser des questions ( j'en ai deja une  )
Mais je dois faire ce script dans un minimum de temps ( c'est trop urgent  : avant la fin de la journée  )

Je vous remercie tous pour votre compréhension 
et à tout de suite.

Première question : Pourquoi le script suivant ne marche pas :

#!/usr/bin/ksh
echo "A?"
read A
while [ $A != 'a' || $A != 'z' ]
do
   echo "A?"
   read A
done

En gros je veux blinder la saisie , pour que l'utilisateur ne tape que soit a soit z.
Ou est l'erreur ?:mouais:


----------



## NightWalker (28 Septembre 2006)

Salut...



			
				tarikbenn a dit:
			
		

> En gros je veux blinder la saisie , pour que l'utilisateur ne tape que soit a soit z.



Donc en gros si on &#233;crit en fran&#231;ais  on a quelque chose comme
_
tant que ce n'est pas 'a' et ce n'est pas 'z' on boucle_


----------



## ntx (28 Septembre 2006)

tarikbenn a dit:


> Première question : Pourquoi le script suivant ne marche pas :
> 
> #!/usr/bin/ksh
> echo "A?"
> ...


En ksh, si tu utilises des opérateurs tel que "!=" à la place de "-ne", "||" au lieu de "-o", il faut encadrer par un double crochet :

```
while [[ $A != 'a' || $A != 'z' ]]
do
   echo "A?"
   read A
done
```


----------



## tarikbenn (28 Septembre 2006)

NightWalker a dit:


> Salut...
> 
> 
> 
> ...


 
oui c'est exactement ca ! 
Alors , comment faire ? 
En bonus , j'ai une autre question  :
Comment faire pour creer , dans un script shell , un fichier dans lequel on ecrira "toto va a l'école" ?

Merci d'avance


----------



## tarikbenn (28 Septembre 2006)

NightWalker a dit:


> Salut...
> 
> 
> 
> ...


 
Le script qui r&#233;pond &#224; ma premi&#232;re question est le suivant : 

#!/usr/bin/ksh 
unset A 
while $A != 'a' && $A != 'z' 
do 
echo "A?" 
read A 
done 

(il ma &#233;t&#233; donn&#233; par un mec  )

Mais je n'ai pas celui qui r&#233;pond &#224; ma deuxi&#232;me question : 

Comment faire pour creer , dans un script shell , un fichier dans lequel on ecrira "toto va a l'&#233;cole" ? 

Merci d'avance


----------



## NightWalker (28 Septembre 2006)

tarikbenn a dit:


> Le script qui r&#233;pond &#224; ma premi&#232;re question est le suivant :
> 
> #!/usr/bin/ksh
> unset A
> ...



Bah c'est bien l'algorithme que je t'ai donn&#233; 


Pour la deuxi&#232;me question, penses &#224; utiliser l'op&#233;rateur ">"


----------



## tarikbenn (28 Septembre 2006)

NightWalker a dit:


> Bah c'est bien l'algorithme que je t'ai donné
> 
> 
> Pour la deuxième question, penses à utiliser l'opérateur ">"


 

Désolé , j'avais pas vu ton algo  :rose: 

Il me reste une dernière question avant la fin de la journée :
Comment, a partir d'un script shell, faire pour aller dans un fichier
qui contient les choses suivantes:
<ital>titi
toto
tata
titi
toto
tata
titi
aretertertzrgg/
QSdsfdsfqdf/
Qqsdqfdg/ </ital>
et ajouter a la suite des lignes 8 , 9 et 10 les mots suivants: abc , def et gki. 
Merci d'avance


----------



## tarikbenn (28 Septembre 2006)

ntx a dit:


> En ksh, si tu utilises des opérateurs tel que "!=" à la place de "-ne", "||" au lieu de "-o", il faut encadrer par un double crochet :
> 
> ```
> while [[ $A != 'a' || $A != 'z' ]]
> ...


 
Hello
J'ai une dernière question avant la fin de la journée 
Je te donne le script que je lance 


_#!/usr/bin/ksh 
echo "taper le nom " 
read NOM 
echo "taper la version " 
read VERSION 
echo "taper la version du machin" 
read VERSION_M 
sed -i.bak '8s/.*/&${NOM}/;9s/.*/&${VERSION}/;10s/.*/&${VERSION_M}/'/start/test/fichier.conf 
cat /start/test/fichier.conf_ 

Mais ca ne marche malheureusement pas. 
Je recois le message d'erreur suivant:
_sed: illegal option -- i_ 

Please help


----------



## ntx (28 Septembre 2006)

et avec "-ibak" au lieu de "-i.bak" ?


----------



## tarikbenn (28 Septembre 2006)

ntx a dit:


> et avec "-ibak" au lieu de "-i.bak" ?


 
Ca donne toujours la même erreur
 
Ne vois tu aucune autre façon ?


----------



## ntx (28 Septembre 2006)

Avec un espace entre "-i" et ".bak" ça marche chez moi.


----------

