[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: 1665
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] controllo dati

Messaggio da sya54M »

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.x
Linux 2.x
Messaggi: 413
Iscritto il: dom 6 gen 2008, 11:46
Slackware: 14.1
Kernel: 3.10.17-smp
Desktop: Xfce 4.10

Re: [bash] controllo dati

Messaggio da sixjan »

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: 1665
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] controllo dati

Messaggio da sya54M »

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: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: [bash] controllo dati

Messaggio da conraid »

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: 1665
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: [bash] controllo dati [risolto]

Messaggio da sya54M »

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

Rispondi