PDA

Visualizza la versione completa : [shell script] Parsing di variabile numerica


citrus
15-06-2004, 19:26
ciao a tutti...
devo implementare un contatore che stampi a video una sequenza numerica da 0 al numero passato come parametro allo script.
Per eseguire il ciclo for ovviamente avrò bisogno di un istruzione che conti (non posso usare il seq perchè ho delle restizioni visto che si tratta di un esercizio di scuola).
Quindi la mia domanda è:
ho necessariamente bisogno di un parser (e se si potete consigliarmene uno) o posso implementare la cosa anche senza?
grazie mille
citruz
:D

Hamish
15-06-2004, 19:30
http://www.dsy.it/forum/showthread.php?threadid=11579



il "compito" per domani è quello di realizzare un script di shell cui si possa inviare uno e un solo parametro di tipo numerico e che stampi poi a video la seria numerica da 0 al numero inserito.


non so se e' valutato o meno ma non mi sembra carino
venir qui a farsi fare il "compito" :)

citrus
15-06-2004, 19:41
non ho assolutamente intenzione di farmi fare il compitino ti assicuro!
anche perchè queste cose mi piacciono e le voglio fare io stesso...
solo che sono fermo su questa cosa...
ovvero se serve un parser è inutile che ci perda tempo (il resto dello script è gia praticamente pronto), tanto vale trovarne uno e usarlo no credi?
cmq grazie do subito un occhiata al link che mi haiu suggerito

citrus
15-06-2004, 19:43
mmm????
non avevo fatto caso al link.....
ma con chi ho a che fare?

ah ah ah
scommetto che è il prof....
sgamato in pieno!
:quote:

Hamish
15-06-2004, 19:43
e' il tuo post sul dsy :gren:
son di info :)

citrus
15-06-2004, 20:17
piacere di conoscerti Hamish (magari ci conosciamo pure)!
cmq tornando al mio problema.....
dimmi almeno se il mio ragionamento è giusto..
la shell mette a disposizione solo variabili di tipo stringa, infatti il for è realizzato mediante "trucchi" perchè non esistono variabili di tipo numerico...
quindi per verificare il valore numerico di un parametro che poi utilizzerò in qualche modo nel for (per me che sono abituato con java) bisogna fare per forza un parsing...
dico bene?
e per fare un parsing ho bisogno di un programma che deve essere per forza esterno ...
mi può essere utile la variabile &# che mi restituisce il numero dei parametri passati ma solo per controllare che non se ne inseriscano più d'uno....
giusto?

Hamish
15-06-2004, 20:29
mai utilizzato script di questo tipo :)
ma prova a vedere al link
http://it.tldp.org/guide/abs/

se c'e' quello che ti serve tipo


#!/bin/bash
2 # int-or-string.sh: Intero o stringa?
3
4 a=2334 # Intero.
5 let "a += 1"
6 echo "a = $a " # a = 2335
7 echo # Intero, ancora.
8
9
10 b=${a/23/BB} # Sostituisce "23" con "BB".
11 # Questo trasforma $b in una stringa.
12 echo "b = $b" # b = BB35
13 declare -i b # Dichiararla come intero non aiuta.
14 echo "b = $b" # b = BB35
15
16 let "b += 1" # BB35 + 1 =
17 echo "b = $b" # b = 1
18 echo
19
20 c=BB34
21 echo "c = $c" # c = BB34
22 d=${c/BB/23} # Sostituisce "BB" con "23".
23 # Questo trasforma $d in un intero.
24 echo "d = $d" # d = 2334
25 let "d += 1" # 2334 + 1 =
26 echo "d = $d" # d = 2335
27 echo

citrus
15-06-2004, 22:40
Originariamente inviato da Hamish
mai utilizzato script di questo tipo :)
ma prova a vedere al link
http://it.tldp.org/guide/abs/

se c'e' quello che ti serve tipo


#!/bin/bash
2 # int-or-string.sh: Intero o stringa?
3
4 a=2334 # Intero.
5 let "a += 1"
....


scusa ma significa che a è una variabile di tipo intero?
a me sembrava di aver capito che la shell può usare solo variabili stringa....
è possibile o ho capito male?

Hamish
15-06-2004, 22:51
non esistono tipi ma se e' di caratteri solo numerici
o usata in un contesto numerico viene interpretata come un numero



#!/bin/bash
a=12
b=7
echo "il risultato e' :"
let "a += b"
echo $a


questo scrive correttamente 19

citrus
15-06-2004, 23:02
a quanto pare è proprio così....
missione compiuta funziona tutto!
ora do una sistematina e poi sono apposto!
(a dire la verità mi mancherebbe di controllare che il parametro inserito sia un numero)....
:D

Loading