PDA

Visualizza la versione completa : [bash] if in un ciclio


punticci
29-03-2013, 14:34
Ciao a tutti.. ho proprio appena iniziato a programmare shell unix (e programmare in generale) quindi vorrei chiedere come fare una cosa proprio banalissima ma tanto per capire.. vorrei fare una shell che mi chiede in input il nome e nel momento in cui viene riconosciuto un certo nome mi dice una cosa, in caso contrario un'altra. Questo l'ho fatto cosi:


#!/bin/bash
echo -n "Inserisci il tuo nome: "
read nome_utente
if [ $nome_utente = 'Pippo' ];
then
echo "Ciao $nome_utente!!!"
else
echo "$nome_utente non sei il creatore della shell"
fi


Non voglio però che la shell però si chiuda. Cioè, dovrebbe riapparirmi echo -n "Inserisci il tuo nome: " fino a quando il nome_utente è (in questo caso) pippo. sennò esce dal ciclo (presumo ci voglia un ciclo)

riperto è una cavolata. Ma voglio cercare di capire.

Alex'87
29-03-2013, 15:19
Ti serve un while ;)
http://www.cyberciti.biz/faq/bash-while-loop/

punticci
29-03-2013, 15:29
Originariamente inviato da Alex'87
Ti serve un while ;)
http://www.cyberciti.biz/faq/bash-while-loop/
Eh lo so ma sbaglio sempre :-(

MItaly
29-03-2013, 15:43
Ti ricordo che il linguaggio di riferimento va sempre specificato (anche nel titolo, sotto forma di "tag").

Per questa volta correggo io, in futuro imposta correttamente la discussione fin da subito. :ciauz:

punticci
29-03-2013, 15:55
Originariamente inviato da MItaly
Ti ricordo che il linguaggio di riferimento va sempre specificato (anche nel titolo, sotto forma di "tag").

Per questa volta correggo io, in futuro imposta correttamente la discussione fin da subito. :ciauz:
Hai perfettamente ragione ti chiedo scusa :-)

Alex'87
29-03-2013, 15:55
Originariamente inviato da punticci
Eh lo so ma sbaglio sempre :-( E noi come facciamo a sapere cosa sbagli? :stordita:

Riporta il codice che ti da errori...

punticci
29-03-2013, 16:09
Originariamente inviato da Alex'87
E noi come facciamo a sapere cosa sbagli? :stordita:

Riporta il codice che ti da errori...
No è che pensavo che magari qualcuno dal codice che ho già messo mi inserisse il ciclo tutto qui. Più che altro sbaglio la condizione del while probabilmente..

Alex'87
29-03-2013, 16:42
Originariamente inviato da punticci
No è che pensavo che magari qualcuno dal codice che ho già messo mi inserisse il ciclo tutto qui.
Non è così che funziona, mi spiace...


Originariamente inviato da punticci
Più che altro sbaglio la condizione del while probabilmente..
Qual è questa condizione? Se fai vedere cosa hai fatto ti si può dire dove sbagli...

punticci
29-03-2013, 17:45
Originariamente inviato da Alex'87
Non è così che funziona, mi spiace...


Qual è questa condizione? Se fai vedere cosa hai fatto ti si può dire dove sbagli...
Capisco il vostro discorso però capite anche che sono agli inizi. Faccio il while e non so che condizione mettere di preciso, poi faccio la if e lo chiudo?

torn24
30-03-2013, 08:35
Un while "cicla" fin quando la condizione è vera !


" fino a quando il nome_utente è (in questo caso) pippo

da quello che hai scritto , deve ripetere fin quando il nome è pippo .






aggiungi un read dopo else in modo da mettere in pausa il programma e leggere il messaggio .

nome_utente='Pippo' // condizione vera esegue il ciclo almeno una volta
While [$nome="pippo"] // dovrebbe essere cosi ma non conosco shell linux

do
i tuo codice e gli if
......
.......
else
echo .........
read ... in modo da mettere in pausa e leggere il messaggio
done

Loading