Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
il problema è che se digito qualsiasi carattere diverso da Y vado nel ciclo else. Se invece non digito nulla, ma premo solo invio mi viene fuori un unexpected operator.
Come gestisco l'invio in modo che vada ad eseguirsi il ciclo else?
il tuo errore deriva dal fatto che se $pippo è null allora fai un controllo del tipo: = y che è un errore perche' l'operatore '=' implica due operandi e $pippo essendo null non esiste.
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
il tuo errore deriva dal fatto che se $pippo è null allora fai un controllo del tipo: = y che è un errore perche' l'operatore '=' implica due operandi e $pippo essendo null non esiste.
il tuo errore deriva dal fatto che se $pippo è null allora fai un controllo del tipo: = y che è un errore perche' l'operatore '=' implica due operandi e $pippo essendo null non esiste.
Emanuele
Secondo me va bene come dice Paoletta, solo con il quote.
Non c'è bisogno d'aggiungere la x davanti.
il tuo errore deriva dal fatto che se $pippo è null allora fai un controllo del tipo: = y che è un errore perche' l'operatore '=' implica due operandi e $pippo essendo null non esiste.
Emanuele
Secondo me va bene come dice Paoletta, solo con il quote.
Non c'è bisogno d'aggiungere la x davanti.
Con bash(1) hai ragione tu come pure la cara Paoletta.
Ma mi meraviglio, la sintassi di AT&T UNIX SVR2/3,
usata da tanti guru dei tempi, e che uso tutt'ora, era:
ulisse89 ha scritto:...Secondo me va bene come dice Paoletta, solo con il quote.
Non c'è bisogno d'aggiungere la x davanti.
Certo, non volevo smentire Paoletta. In effetti ho visto spesso la sintassi che ho descritto (che però ho scritto male perchè non ci vuole il quote) ma poi io faccio sempre come suggerito da Paoletta. L'importante è capire perchè si genera l'errore poi ognuno risolve come preferisce .
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
Se pippo contiene caratteri "strambi",
con shell non bash, come finisce il test?
Ecco, appunto, io credo che quella fosse un vecchio modus operandi. C'è da dire che la bash è un po' particolare, ti permette di fare una espansione di parametro all'interno della quotatura "", magari e dico magari, se una volta questo non succedeva o se qualche shell ancora oggi non lo sopporta, allora non è possibile usare i quote per espandere una variabile e quindi ti tocca usare il vecchio stile x$var. Se poi guardi test(1) se ${pippo} non vale esattamente y il il test ritorna falso, inoltre se ${pippo} contiene uno spazio allora il test da errore dicendo che ci sono troppi parametri dato che se ne aspetta uno unario a destra e uno unario a sinistra dell'uguale, ed infatti l'errore iniziale è proprio quello, dato che pippo non è stata settata test(1) reclama l'assenza di un operatore unario a sinistra.
E ancora, per la bash si potrebbe usare il più veloce, poiché interno: