Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1621 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°381742
divx77
Posté le 04-05-2003 à 15:37:40  profilanswer
 

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

mood
Publicité
Posté le 04-05-2003 à 15:37:40  profilanswer
 

n°381748
divx77
Posté le 04-05-2003 à 15:44:47  profilanswer
 

un ch'ti up!!  :ange:  
 
plizzzz

n°381750
Taz
bisounours-codeur
Posté le 04-05-2003 à 15:46:31  profilanswer
 

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
 

n°381752
divx77
Posté le 04-05-2003 à 15:51:07  profilanswer
 

++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?

n°381756
Taz
bisounours-codeur
Posté le 04-05-2003 à 15:53:46  profilanswer
 

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

n°381767
divx77
Posté le 04-05-2003 à 16:04:02  profilanswer
 

++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...

n°381768
Taz
bisounours-codeur
Posté le 04-05-2003 à 16:05:17  profilanswer
 

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
n°381803
divx77
Posté le 04-05-2003 à 16:59:49  profilanswer
 

++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...
 

n°381805
Taz
bisounours-codeur
Posté le 04-05-2003 à 17:03:38  profilanswer
 

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

n°381812
daique
Posté le 04-05-2003 à 17:11:59  profilanswer
 

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

mood
Publicité
Posté le 04-05-2003 à 17:11:59  profilanswer
 

n°381813
samuelp
Posté le 04-05-2003 à 17:15:15  profilanswer
 

++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.

n°381814
samuelp
Posté le 04-05-2003 à 17:15:59  profilanswer
 

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

n°381816
Taz
bisounours-codeur
Posté le 04-05-2003 à 17:17:35  profilanswer
 

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]

n°381817
divx77
Posté le 04-05-2003 à 17:24:34  profilanswer
 

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...

n°381818
Taz
bisounours-codeur
Posté le 04-05-2003 à 17:27:38  profilanswer
 

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

n°381821
divx77
Posté le 04-05-2003 à 17:31:47  profilanswer
 

++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...

n°381822
Taz
bisounours-codeur
Posté le 04-05-2003 à 17:34:59  profilanswer
 

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:

n°381823
samuelp
Posté le 04-05-2003 à 17:35:10  profilanswer
 

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)

n°381824
Taz
bisounours-codeur
Posté le 04-05-2003 à 17:36:00  profilanswer
 

:na:  :p

n°381831
divx77
Posté le 04-05-2003 à 17:39:46  profilanswer
 

++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

n°381839
divx77
Posté le 04-05-2003 à 17:44:31  profilanswer
 

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...

n°381842
Taz
bisounours-codeur
Posté le 04-05-2003 à 17:45:38  profilanswer
 

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

n°381856
divx77
Posté le 04-05-2003 à 17:54:26  profilanswer
 

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 çà...

n°381858
Taz
bisounours-codeur
Posté le 04-05-2003 à 17:57:24  profilanswer
 

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

n°381859
daique
Posté le 04-05-2003 à 17:59:14  profilanswer
 

Ben je dirais qu'il a pas dut la comprendre

n°381863
samuelp
Posté le 04-05-2003 à 18:07:09  profilanswer
 

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...

n°381866
divx77
Posté le 04-05-2003 à 18:09:30  profilanswer
 

++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...

n°381868
Taz
bisounours-codeur
Posté le 04-05-2003 à 18:14:25  profilanswer
 

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

n°381881
divx77
Posté le 04-05-2003 à 18:30:59  profilanswer
 

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é.

n°381883
Taz
bisounours-codeur
Posté le 04-05-2003 à 18:33:34  profilanswer
 

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.

n°381884
divx77
Posté le 04-05-2003 à 18:36:02  profilanswer
 

++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:

n°382205
skeye
Posté le 05-05-2003 à 07:47:05  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 

Sujets relatifs
Formualire et script cgi ???[PHP]Probleme d'execution de script avec Easy Php
probleme avec une boucle[ASP] boucle for
[ Flash MX - Script ] Mot de passe pour proteger la pageComment arréter une boucle dans une autre fonction...(+clair ci-dessou
[C++] Pb de boucle for récalcitranteECMA script coté serveur : des tutoriaux ?
boucle while indentifiant variable[Socket Linux] Qd le client ferme, le serveur boucle sur le message
Plus de sujets relatifs à : Comment fait -on une boucle en bash pour un script sous nunux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR