|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 869
|
Calcolo della media tramite script bash
Salve ragazzi. Ho un problemino nella creazione di uno script bash per il calcolo della media di alcuni valori restituiti da un programma. Mi spiego meglio. Io dovrei lanciare n_iter volte un programma e ogni volta "prelevare" dal suo output un valore, sommarlo a quelli precedenti e alla fine fare la divisione per n_iter. Io ho scritto il seguente script:
#!/bin/bash n_iter=5 counter=0 media=0 x=0 while [ $counter -lt $n_iter ] do counter=`expr $counter + 1` x=`./dikh <input_file -p 50 | egrep Running | awk '{printf ($6"\n")}'` echo "x=" $x media=`expr $media + $x` done media=`expr $media / $n_iter` Il problema che mi da deriva dal fatto che quando estraggo il valore del risultato dallo standard output tramite la grep e l'awk e lo salvo nella variabile x quest'ultima viene considerata come una stringa e di conseguenza la successiva operazione media=`expr $media + $x`mi restituisce un errore perchè i parametri non sono numerici. C'è un modo per convertire la stringa in numero tipo con la funzione atoi del C? Oppure c'è un modo migliore per prelevare direttamente come un numero il valore dell'output del programma? ( Per la cronaca l'output viene scritto in questo modo " Running time of SP computation: 12.33 " e a me servirebbe salvare in x il 12.33 in formato numerico ). Grazie per l'aiuto. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Bash non supporta i numeri in virgola mobile. Devi usare bc:
http://db.ilug-bom.org.in/Documentat...thc.html#BCREF
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
-bash-2.05b$ expr 15 + 8 23 -bash-2.05b$ expr 15.5 + 8 expr: non-numeric argument
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 869
|
grazie mille. ho tagliato la testa al toro e usato uno script perl.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:25.



















