[bash] controllo dati [risolto]

Forum dedicato alla programmazione.

Moderatore: Staff

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.
Avatar utente
sya54M
Master
Master
Messaggi: 1589
Iscritto il: mer giu 06, 2007 14:44
Nome Cognome: Andrea P.
Slackware: 64-current
Kernel: 4.8.x
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] controllo dati

Messaggioda sya54M » mar ago 25, 2009 17:55

sixjan ha scritto:expr 0 + 3,1345 dà errore
expr 0 + 3.123 dà errore

ah giusto... e vorrà dire che mi accontenterò di interi :D
sixjan ha scritto:No. In uno script o in console $? ti dà il codeice d'errore dell'ultimo
comando lanciato in quello script o in quella console. Non monitorizza
tutto il sistema.

perfetto allora

sixjan
Linux 2.4
Linux 2.4
Messaggi: 413
Iscritto il: dom gen 06, 2008 11:46
Slackware: 14.1
Kernel: 3.10.17-smp
Desktop: Xfce 4.10

Re: [bash] controllo dati

Messaggioda sixjan » mar ago 25, 2009 18:07

Se vuoi anche i numeri reali, prova:

echo 0 + $1 | bc

ma bc non è installato su tutti i sistemi. bc ti dà errore
con 5,5 . Invece accetta 5.5 . bc legge 089 come 89.

Avatar utente
sya54M
Master
Master
Messaggi: 1589
Iscritto il: mer giu 06, 2007 14:44
Nome Cognome: Andrea P.
Slackware: 64-current
Kernel: 4.8.x
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] controllo dati

Messaggioda sya54M » mar ago 25, 2009 18:11

sixjan ha scritto:Se vuoi anche i numeri reali, prova:

echo 0 + $1 | bc

ma bc non è installato su tutti i sistemi. bc ti dà errore
con 5,5 . Invece accetta 5.5 . bc legge 089 come 89.

se non è installato su tutti i pc è meglio di no, tanto non è importante, mi accontento dei numeri interi.

ho fatto delle prove e tutto sembra funzionare, questa è la soluzione:

Codice: Seleziona tutto

expr $1 \+ 0 1> /dev/null
val=$?
if [ $# -ne "1" -o $val -ne "0" ]

grazie mille a tutti :thumbright:

Avatar utente
conraid
Staff
Staff
Messaggi: 12801
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: [bash] controllo dati

Messaggioda conraid » mar ago 25, 2009 18:15

sya54M ha scritto:ho fatto delle prove e tutto sembra funzionare, questa è la soluzione:

Codice: Seleziona tutto

expr $1 \+ 0 1> /dev/null
val=$?
if [ $# -ne "1" -o $val -ne "0" ]

grazie mille a tutti :thumbright:


mmm :-k
non sarebbe meglio

Codice: Seleziona tutto

if [ $# -ne 1 -o $val -ne 0 ]

Avatar utente
sya54M
Master
Master
Messaggi: 1589
Iscritto il: mer giu 06, 2007 14:44
Nome Cognome: Andrea P.
Slackware: 64-current
Kernel: 4.8.x
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] controllo dati [risolto]

Messaggioda sya54M » mar ago 25, 2009 18:23

conraid ha scritto:mmm :-k
non sarebbe meglio

Codice: Seleziona tutto
if [ $# -ne 1 -o $val -ne 0 ]

boh a me pare che non cambia nulla...


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti