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.
bene, ora da l'errore, però vorrei specificare io il messaggio di errore invece di stampare
unbound variable
posso?
grazie mille a tutti, ...soprattutto a corrado
bene, ora da l'errore, però vorrei specificare io il messaggio di errore invece di stampare
unbound variable
posso?
grazie mille a tutti, ...soprattutto a corrado
e di cosa, io conosco anche poco di bash.
Penso che per specificare meglio l'errore devi fare tu dei controlli
p.s.
in fase di debug usa sempre set -eu
io set -e lo uso anche negli slackbuild
conraid ha scritto:intendevo di controllare il valore, a questo punto devi fare "a mano"
cosa intendi con "a mano"?
$1 deve poter essere un qualunque valore numerico, non un valore particolare, cioè non deve essere compreso in un range.
come faccio a controllarlo?
Sì, infatti. tr -d [0-9] cancella i numeri. Se $1 è composto solo da numeri
il codice che ho scritto restituisce una stringa vuota, quindi $1 è un numero intero senza virgole.
Quindi se $1 è NON è un numero intero il mio esempio esce con un errore.
Puoi provare lo script che ho postato con dei numeri e mi dici dove è l'errore, o almeno
mi scrivi che tipo di numeri devi controllare (interi, con virgola...).
EDIT: mi sa che stai facendo un po' di confusione. Salva il mio script e
lancialo così:
sh script $1
vedrai che ti segnalerà sempre quando $1 NON è un numero.
sya54M ha scritto:però stavo pensando che se nel frattempo che viene controlato si chiude un qualunque altro processo, leggerebbe l'exit status sbagliato
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.