Comment fait -on une boucle en bash pour un script sous nunux

Comment fait -on une boucle en bash pour un script sous nunux - Shell/Batch - Programmation

Marsh Posté le 04-05-2003 à 15:37:40    

voila, ceci est donc un petit script en bash ( enfin je crois) ki permet de créer des utilisateurs sans se taper toute les commandes à chaques fois...
donc je suis sur ke çà peut aider meme si c ultra basique..
 
Mais le pb c ke comme je suis une queue en prog ( j'en ai jamais fais) je voudrais savoir comment et ou mettre la fameuse boucle ki permettra de pouvoir créer plusieurs utilisateurs si on répond oui ou o  et de sortir du programme kan on tape non ou n  !!
 
je ferais surement evoluer ce petit script avec des fonctions case pour choisir les groupes en tapant: 1 pour direction
                                         2 pour secretariat
                                         3 etc...
voila le petit script:  
 
 
#! /bin/bash
echo '------------------------------------'
echo '-  donner le nom de l utilisateur  - '
echo '------------------------------------'
read user
echo '------------------------------------'
echo '-     donner le nom du groupe      -'
echo '------------------------------------'
read group
useradd $user -g $group -d /home/$group/$user
echo '------------------------------------'
echo '-      utilisateur enregistré      -'
echo '------------------------------------'
echo ''
echo '####################################'
echo ''
echo '------------------------------------'
echo '-  vous devez maintenant confimer  -'
echo '-le mot de passe de cet utilisateur-'
echo '------------------------------------'
passwd $user
echo '------------------------------------'
echo '- c est fini, l utilisateur '$user'-'    
echo '-   a été correctement enregistré  -'
echo '------------------------------------'
echo '####################################'
echo ''
echo '------------------------------------'
echo '- avez vous d autres utilisateurs  -'
echo '-         à enregistrer?           -'
echo '                                   -'
echo '- repondez          * par OUI (o)  -'  
echo '-    ou             * par NON (n)  -'
echo '------------------------------------'
read reponse
?????????????? kes ke je met ici pour créer la boucle?
exit 0

Reply

Marsh Posté le 04-05-2003 à 15:37:40   

Reply

Marsh Posté le 04-05-2003 à 15:44:47    

un ch'ti up!!  :ange:  
 
plizzzz

Reply

Marsh Posté le 04-05-2003 à 15:46:31    

rhoo le menu à la DOS
pourkoi tu fais
 
 
username:
group:
password:
 
encore [O/N] :
 
beaucoup moins verbeux, aussi efficace
 
avec
 
while [[ $s != "o" && $s != "O" ]]; do
    echo "[O/N]"
    read s
done;
 
tien ça existe de do...while en sh, j'ai jamais essayé...
 
par contre, je sais pas comment on fait en sh pour basculer le terminale en mode brut pour avoir à tape [entree] pour le o/n
 

Reply

Marsh Posté le 04-05-2003 à 15:51:07    

++Taz a écrit :

rhoo le menu à la DOS
pourkoi tu fais
 
 
username:
group:
password:
 
encore [O/N] :
 
beaucoup moins verbeux, aussi efficace
 
avec
 
while [[ $s != "o" && $s != "O" ]]; do
    echo "[O/N]"
    read s
done;
 
tien ça existe de do...while en sh, j'ai jamais essayé...
 
par contre, je sais pas comment on fait en sh pour basculer le terminale en mode brut pour avoir à tape [entree] pour le o/n
 
 


 
ba parce ke je veux faire un truc simple... comme je le disais, je suis nulle en prog, ... jen ai jamais fais...
et puis je comprend pas trop la syntaxe de ton code:
c pour remplacer la question o/n c çà?  
mais apres, il se passe koi?

Reply

Marsh Posté le 04-05-2003 à 15:53:46    

ben cherche un cours de sh sur internet, il y en a beaucoup, pour  apprendre comemnt on fait les test
 
http://www.shellunix.com/
 
apprends un peu le langage avant de reposter, parce que sinon, on peut rien du tout pour toi

Reply

Marsh Posté le 04-05-2003 à 16:04:02    

++Taz a écrit :

ben cherche un cours de sh sur internet, il y en a beaucoup, pour  apprendre comemnt on fait les test
 
http://www.shellunix.com/
 
apprends un peu le langage avant de reposter, parce que sinon, on peut rien du tout pour toi


 
alala ... jorais du mieux m'exprimer... g pourtant dis ke je voulais connaitre la fonction de la boucle dans ce script..
 
[citation]
voila, ceci est donc un petit script en bash ( enfin je crois) ki permet de créer des utilisateurs sans se taper toute les commandes à chaques fois...  
donc je suis sur ke çà peut aider meme si c ultra basique..[/citation]
comme je le disais, c t basique! pas besoin de me le reprocher..
 
et puis surtout, excuse moi d'apprendre...
jorais du franchement eviter de poster ici...

Reply

Marsh Posté le 04-05-2003 à 16:05:17    

while test do;
  commande
done;
 
et tu fais bien de t'excuser, on en voit trop de morveux qui croient que la programmation ça se fait en claquant des doigts, comme ça. Pas besoin de bouqin, de doc...
 
alors avant de demander de l'aide assure toi de conaitre la synthaxe du langage, par ce que a vu de nez, je dirait que tu as 5 minutes de sh derriere toi. si tu veux plus reposter, ça sera pas une grande perte, meme un gain de temps je dirai


Message édité par Taz le 04-05-2003 à 16:08:27
Reply

Marsh Posté le 04-05-2003 à 16:59:49    

++Taz a écrit :

while test do;
  commande
done;
 
et tu fais bien de t'excuser, on en voit trop de morveux qui croient que la programmation ça se fait en claquant des doigts, comme ça. Pas besoin de bouqin, de doc...
 
alors avant de demander de l'aide assure toi de conaitre la synthaxe du langage, par ce que a vu de nez, je dirait que tu as 5 minutes de sh derriere toi. si tu veux plus reposter, ça sera pas une grande perte, meme un gain de temps je dirai


 
alors toi, je te retiens  :fou:  .... jamais on m'as parlé de la sorte...  
pkoi répond tu à mes kestions si tu perd ton temps?  :??:  
et meme si j'avais KE 5 minutes de sh derriere moi, tu n'as franchement pas le droit de me prendre pour un morveux  :heink: ...  
Et kan je dis, ""et puis surtout, excuse moi d'apprendre..."" , c pas pour m'excuser de t'avoir fais perdre du temps...  
a okun moment je n'ai été vulgaire et toi, tout le contraire...
 

Reply

Marsh Posté le 04-05-2003 à 17:03:38    

ben c toi qui a commencé à me chercher. y a pas de "excuse..", sur cette cat y a tout un paquet de debutant qui comprenne bien qu'on peut pas leur tenir la jambe et qu'il faut qu'ils apprennent un minimum avant de poser des qustions. Toi, tu nous sors un topic du genre "faut mettre un ; en fin de ligne". t'as 5 minutes effectives de sh derriere toi, et tout le monde te repondra la meme chose: apprends, et si tu comprends pas un truc, demande. toi tu sais rien c'est différent.
 
en plus, tu prendrais la peine, ne serait-ce de regarder le lien que je t'ai donné, t'en connaitrais déjà 4 fois plus sur sh.
 
mais continue à faire des echo dans tous les sens, ça apparemment tu le fait tres bien

Reply

Marsh Posté le 04-05-2003 à 17:11:59    

C'est bientot la fin de l'année scolaire, certains commencent a stressé d'avoir loupé les cours de systemes on dirait  [:ddr555]

Reply

Marsh Posté le 04-05-2003 à 17:11:59   

Reply

Marsh Posté le 04-05-2003 à 17:15:15    

++Taz a écrit :

ben c toi qui a commencé à me chercher. y a pas de "excuse..", sur cette cat y a tout un paquet de debutant qui comprenne bien qu'on peut pas leur tenir la jambe et qu'il faut qu'ils apprennent un minimum avant de poser des qustions. Toi, tu nous sors un topic du genre "faut mettre un ; en fin de ligne". t'as 5 minutes effectives de sh derriere toi, et tout le monde te repondra la meme chose: apprends, et si tu comprends pas un truc, demande. toi tu sais rien c'est différent.
 
en plus, tu prendrais la peine, ne serait-ce de regarder le lien que je t'ai donné, t'en connaitrais déjà 4 fois plus sur sh.
 
mais continue à faire des echo dans tous les sens, ça apparemment tu le fait tres bien
 


 
Je veux pas etre mechant mais toi non plus tu n'as pas l'air de connaitre bien le Bash puisque le code que tu as pondu ne repond pas à sa question
 
 

Code :
  1. while [[ $s != "n" && $s != "N" ]]; do
  2. echo '------------------------------------'
  3. echo '-  donner le nom de l utilisateur  - '
  4. echo '------------------------------------'
  5. read user
  6. echo '------------------------------------'
  7. echo '-     donner le nom du groupe      -'
  8. echo '------------------------------------'
  9. read group
  10. useradd $user -g $group -d /home/$group/$user
  11. echo '------------------------------------'
  12. echo '-      utilisateur enregistré      -'
  13. echo '------------------------------------'
  14. echo ''
  15. echo '####################################'
  16. echo ''
  17. echo '------------------------------------'
  18. echo '-  vous devez maintenant confimer  -'
  19. echo '-le mot de passe de cet utilisateur-'
  20. echo '------------------------------------'
  21. passwd $user
  22. echo '------------------------------------'
  23. echo '- c est fini, l utilisateur '$user'-'   
  24. echo '-   a été correctement enregistré  -'
  25. echo '------------------------------------'
  26. echo '####################################'
  27. echo ''
  28. echo '------------------------------------'
  29. echo '- avez vous d autres utilisateurs  -'
  30. echo '-         à enregistrer?           -'
  31.    echo "[O/N]"
  32.    read s
  33. done;

 
 
Y a peut etre une fote dedans mais c plus dans l'interet du Topic.

Reply

Marsh Posté le 04-05-2003 à 17:15:59    

daique a écrit :

C'est bientot la fin de l'année scolaire, certains commencent a stressé d'avoir loupé les cours de systemes on dirait  [:ddr555]  


 
Bullshit, Unix on ne l'apprend qu'en pratiquant, non en lisant des polycopies

Reply

Marsh Posté le 04-05-2003 à 17:17:35    

samuelp a écrit :


 
Je veux pas etre mechant mais toi non plus tu n'as pas l'air de connaitre bien le Bash puisque le code que tu as pondu ne repond pas à sa question
 

:lol:  :lol:  :lol:    [:tobrainc]

Reply

Marsh Posté le 04-05-2003 à 17:24:34    

samuelp a écrit :


 
Je veux pas etre mechant mais toi non plus tu n'as pas l'air de connaitre bien le Bash puisque le code que tu as pondu ne repond pas à sa question
 
 

Code :
  1. while [[ $s != "n" && $s != "N" ]]; do
  2. echo '------------------------------------'
  3. echo '-  donner le nom de l utilisateur  - '
  4. echo '------------------------------------'
  5. read user
  6. echo '------------------------------------'
  7. echo '-     donner le nom du groupe      -'
  8. echo '------------------------------------'
  9. read group
  10. useradd $user -g $group -d /home/$group/$user
  11. echo '------------------------------------'
  12. echo '-      utilisateur enregistré      -'
  13. echo '------------------------------------'
  14. echo ''
  15. echo '####################################'
  16. echo ''
  17. echo '------------------------------------'
  18. echo '-  vous devez maintenant confimer  -'
  19. echo '-le mot de passe de cet utilisateur-'
  20. echo '------------------------------------'
  21. passwd $user
  22. echo '------------------------------------'
  23. echo '- c est fini, l utilisateur '$user'-'   
  24. echo '-   a été correctement enregistré  -'
  25. echo '------------------------------------'
  26. echo '####################################'
  27. echo ''
  28. echo '------------------------------------'
  29. echo '- avez vous d autres utilisateurs  -'
  30. echo '-         à enregistrer?           -'
  31.    echo "[O/N]"
  32.    read s
  33. done;

 
 
Y a peut etre une fote dedans mais c plus dans l'interet du Topic.
 


 
 
Merci Beaucoup Samuelp!!! toi , tu es sympa  :hello: et tu comprend les questions kon pose :sarcastic:  
Sur ce je VAIS pouvoir continuer à apprendre sur cette syntaxe gentillement donné par tes soins!
merci encore..
 
Le jour ou tu sera dans la merde ++Taz, j'espere ke tu seras plus sympa et plus compréhensif avec les autres...

Reply

Marsh Posté le 04-05-2003 à 17:27:38    

ouais,c 'est ça merci samuelp :lol:  :lol:  :lol:  :lol:

Reply

Marsh Posté le 04-05-2003 à 17:31:47    

++Taz a écrit :

ben c toi qui a commencé à me chercher. y a pas de "excuse..", sur cette cat y a tout un paquet de debutant qui comprenne bien qu'on peut pas leur tenir la jambe et qu'il faut qu'ils apprennent un minimum avant de poser des qustions. Toi, tu nous sors un topic du genre "faut mettre un ; en fin de ligne". t'as 5 minutes effectives de sh derriere toi, et tout le monde te repondra la meme chose: apprends, et si tu comprends pas un truc, demande. toi tu sais rien c'est différent.
 
en plus, tu prendrais la peine, ne serait-ce de regarder le lien que je t'ai donné, t'en connaitrais déjà 4 fois plus sur sh.
 
mais continue à faire des echo dans tous les sens, ça apparemment tu le fait tres bien
 


 
Tu peux seulement me dire ou g été commencé à te chercher???  :heink:  
si les echo çà te gene, tu n'as ka me donner une syntaxe différente..  
sur ce, g trouvé un otre site: http://lea-linux.org/dev/shell_script.php3
ou malheureusement il y a aussi des echo ...  
mais bon, à priori tu trouve çà laid.. chakun son truc...

Reply

Marsh Posté le 04-05-2003 à 17:34:59    

divx77 a écrit :


et puis surtout, excuse moi d'apprendre...
jorais du franchement eviter de poster ici...


 
sans déconner
 
avec
 
 
while [[ $s != "o" && $s != "O" ]]; do
   echo "[O/N]"
   read s
done;  
 
+
 
une boite à cerveau fonctionnelle
 
 
t'aurais pu t'en sortir
encore merci à sam, le pro du copié-collé :jap:

Reply

Marsh Posté le 04-05-2003 à 17:35:10    

divx77 a écrit :


 
Tu peux seulement me dire ou g été commencé à te chercher???  :heink:  
si les echo çà te gene, tu n'as ka me donner une syntaxe différente..  
sur ce, g trouvé un otre site: http://lea-linux.org/dev/shell_script.php3
ou malheureusement il y a aussi des echo ...  
mais bon, à priori tu trouve çà laid.. chakun son truc...


 
Ton script ressemble bcp à ce que l'on faisait sous DOS y a une epoque (les .bat)
 
 Moi j'aime bien car c'est nettement plus clair et au moins des personnes pas trop calées en infos peuvent le maintenir. A moins que tu ne veuilles faire un script Bash tres sophistiqué aux fonctions multiples, ta syntaxe est bonne.
 
N'ecoutes pas ++Taz : il est tres imbus de sa personne, c'est une personne tres instable capable de te rentrer dans le lard à la moindre etincelle : le mieux c'est de lui foutre la paix (c'est le genre de personne a sonner à ta porte à 2 heures du mat pour un reglement de compte, et ce n'est pas des conneries)

Reply

Marsh Posté le 04-05-2003 à 17:36:00    

:na:  :p

Reply

Marsh Posté le 04-05-2003 à 17:39:46    

++Taz a écrit :


 
sans déconner
 
avec
 
 
while [[ $s != "o" && $s != "O" ]]; do
   echo "[O/N]"
   read s
done;  
 
+
 
une boite à cerveau fonctionnelle
 
 
t'aurais pu t'en sortir
encore merci à sam, le pro du copié-collé :jap:  


 
bon allez sur ce, je te laisse..
http://dejean.benoit.free.fr/Photos/IMG_0759.jpg
 
adios... :D

Reply

Marsh Posté le 04-05-2003 à 17:44:31    

samuelp a écrit :


 
Ton script ressemble bcp à ce que l'on faisait sous DOS y a une epoque (les .bat)
 
 Moi j'aime bien car c'est nettement plus clair et au moins des personnes pas trop calées en infos peuvent le maintenir. A moins que tu ne veuilles faire un script Bash tres sophistiqué aux fonctions multiples, ta syntaxe est bonne.
 
N'ecoutes pas ++Taz : il est tres imbus de sa personne, c'est une personne tres instable capable de te rentrer dans le lard à la moindre etincelle : le mieux c'est de lui foutre la paix (c'est le genre de personne a sonner à ta porte à 2 heures du mat pour un reglement de compte, et ce n'est pas des conneries)


 
j'orais du te poser la kestion en direct... c kkch de simple ke je voulais mais a priori , ya certaine personne ki n'aime pas la simplicité dans ce monde de fou dixit taz...

Reply

Marsh Posté le 04-05-2003 à 17:45:38    

eh oh ,tu te calmes, je t'ai donné une réponse, sam t'as filé le boulot ton fait.
 
si t'avais essayé mon bout de code, t'aurais tout de suite compris

Reply

Marsh Posté le 04-05-2003 à 17:54:26    

franchement, g jamais vu kkun d'ossi peu compréhensif ke toi alors je me venge un peu de ton esprit merdique...
 
je m'arrete la t'inkiete... c t pour me calmer ke g fais çà...

Reply

Marsh Posté le 04-05-2003 à 17:57:24    

dans l'histoire c'est toi qui comrpends rien: je te donne une solution, c'est à se demander si tu l'as lu

Reply

Marsh Posté le 04-05-2003 à 17:59:14    

Ben je dirais qu'il a pas dut la comprendre

Reply

Marsh Posté le 04-05-2003 à 18:07:09    

Dans cette histoire bien caractéristique de ce forum, il faut savoir que, ce qui semble évident pour les uns ne l'est pas forcement pour les autres.  
 
 Si monsieur divx77 n'a jamais fait de Bash dans sa vie il est clair que celui ne comprendra pas la syntaxe élitiste de Monsieur ++Taz.
 
 Allez demander des explications à un vulcanologue sur la tectonique des plaques : si vous lui demandez pas d'imager ses propos vous ne comprendrez rien, meme avec des liens, vous n'aurez pas envie de lire un bouquin de 1500 pages pour se mettre à son niveau. En programmation, c'est pareil.
 
  Il y a les programmeurs et ceux qui ont besoin des programmes pour executer quelques taches particulieres...

Reply

Marsh Posté le 04-05-2003 à 18:09:30    

++Taz a écrit :

eh oh ,tu te calmes, je t'ai donné une réponse, sam t'as filé le boulot ton fait.
 
si t'avais essayé mon bout de code, t'aurais tout de suite compris


 
est ce ke tu peux comprendre et admettre kun débutant ne comprend pas tout o début?
      si oui, c bien, tu es compréhensif
      si non, ba arrete de répondre à des topics et celui la en particulier..
 
o cas ou tu l'orais pas remarquer mais samuelp n'as pas fais un copié coller: il as donné  
               while [[ $s != "n" && $s != "N" ]]; do  
 
alors ke toi tu as donné:
               while [[ $s != "o" && $s != "O" ]]; do  
 
ya une nuance... et puis si tu arretais de m'enerver sur le faite ke je n'ai pas compris, je pourrais tester ces 2 solutions...

Reply

Marsh Posté le 04-05-2003 à 18:14:25    

ouais alors la nuance
 
 
amène ton cerveau la prochaine fois

Reply

Marsh Posté le 04-05-2003 à 18:30:59    

Pour en finir,g tester les 2 solutions...
 
while [[ $s != "o" && $s != "O" ]]; do   dixit taz
ne marche pas puisque je sors du script lorsque je repond  o
 
alors ke  
while [[ $s != "n" && $s != "N" ]]; do  dixit samuelp
marche ...
 
tu vois, je suis compréhensif en me disant ke kkch de si simple pour toi ne sois pas si difficile à faire... mais bon..  
je te reprocherais juste d'etre un poil... associal :whistle:  
 
le truc ke je n'avais pas compris en faite, pour tout te dire... c t ou mettre le code ke tu m'avais donné.

Reply

Marsh Posté le 04-05-2003 à 18:33:34    

toi t'es un poil idiot. sur ce, je me casse, je laisse les autres faire tes devoirs, je les plains, vu que t'es pas capable de modifier une simple ligne, de comprendre un exemple.

Reply

Marsh Posté le 04-05-2003 à 18:36:02    

++Taz a écrit :

toi t'es un poil idiot. sur ce, je me casse, je laisse les autres faire tes devoirs, je les plains, vu que t'es pas capable de modifier une simple ligne, de comprendre un exemple.


 
 
put1 de merde, ba retourne à tes soirées disco et fais plus chier si t incapable de t'exprimer correctement.
 
de plus, c pas un devoirs..
mauvais joueur  :whistle:

Reply

Marsh Posté le 05-05-2003 à 07:47:05    

Je croyais que ct le vendredi les trolls... :??:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed