Newsgroup: it.comp.os.linux.iniziare
Titolo: script bash, $RANDOM

In uno script bash questo comando per generare una firma casuale partendo
da un file con una frase per riga:
head -n $(( ($RANDOM * 32768 + $RANDOM) % $LINES + 1)) $SIGSFILE | tail -n
1 | fmt >> ~/.signature
Ha sempre funzionato perfettamente. Ho voluto provare ubuntu edgy, e
ricevo questo errore:
randomtag.sh: 39: arithmetic expression: syntax error: " ( * 32768 + ) %
81 + 1"
cosa puo' essere?
"echo $RANDOM" da shell funziona.
Grazie



giusto per curiosità... quanto cavolo è grosso il tuo file di signatures,
che hai bisogno di moltiplicare $RANDOM * 32K? E inoltre, hai mai pensato
di usare fortune?
...comunque... boh, a me sembra sintatticamente giusto... al limite
sostituisci
$(( ($RANDOM * 32768 + $RANDOM) % $LINES + 1))
con
$(python -c"print ($RANDOM * 32768 + $RANDOM) % $LINES + 1)
(o altro linguaggio di programmazione a scelta)
-- 
Under construction

 Grazie
Prego, e di che.
Saluti,
David
-- 
Linux Registered User #334216
Get FireFox! >> 
http://www.spreadfirefox.com/?q=affiliates&id=48183&t=1
Staff >> 
http://www.debianizzati.org
 <<

 (o altro linguaggio di programmazione a scelta)
e' vero...diciamo che mi piacerebbe anche capire cosa e' cambiato e
perche' non va piu'...

 "echo $RANDOM" da shell funziona.
]zac[
Conta piuttosto poco, è mettendo echo $RANDOM e echo $LINES nello script che
si vede quello che succede.
Per esempio da me $LINES da riga di comando mi ritorna 49, nello script non
ritorna niente.
P.S. Nel manuale di bash c'è scritto che se viene impostato $RANDOM a niente
smette di funzionare come un generatore di numeri casuali.
P.S. Usare /dev/urandom o un programma che generi numeri casuali?

 P.S. Usare /dev/urandom o un programma che generi numeri casuali?
Certo, perche' no? Il punto e', pero', perche' fino a ieri funzionava?
Cos'ha Ubuntu Edgy di diverso? 8-)

 LINES=$((`wc -l < $SIGSFILE`))
mmm
domanda scema, ma ha senso dover interpretare come numero LINES?
prova a usare un banale LINES=$(wc -l < $SIGFILE)
-- 
Under construction

 domanda scema, ma ha senso dover interpretare come numero LINES?
Posso rispondere io. Serve a eliminare gli spazi extra che "wc -l" aggiunge
al suo output. Un trucco vecchio ma efficace.
In passato usavo LINES=`expr $LINES`. Altri shells, altri trucchi.
Ciao,
-- 
        Roberto Divia`              Love at first sight is one of the greatest
Dep:PH Bat:53 Mailbox:C02110      labour-saving devices the world has ever seen
Route de Meyrin 385               ---------------------------------------------
Case Postale                                Phone:  
+41-22-767-4994
CH-1211 Geneve 23 CERN                      Fax:    
+41-22-767-9585
Switzerland                                 E-Mail: 
Robert...@cern.ch

 al suo output. Un trucco vecchio ma efficace.
esatto!
-- 
"Mi sono reso conto che un bisogno psicologico di fede dipende molto
dall'indottrinamento subito durante l'infanzia, e che questo aveva
tutte le caratteristiche della tossicodipendenza." (Neal Cary)

[CUT ALL]
pazzesco, ho semplicemente sostituito
#!/bin/sh
con
#!/bin/bash
e funziona! 8-)
-- 
"Vi scongiuro, fratelli miei, rimanete fedeli alla Terra, e non
prestate fede a coloro che vi parlano di speranze ultraterrene! Si
tratta di avvelenatori, che lo sappiano o meno." (F. Nietzsche)


Non e' mica tanto pazzesco. Apparentemente c'era qualcosa proprio di
bash, che ad sh non andava.
-- 
Salvatore Iovene
http://www.iovene.com

 bash, che ad sh non andava.
ok, ma la domanda e' sempre quella...perche' prima non si lamentava? 8-)
-- 
"[...] per via degli atei occorrono le prove, a salvaguardia di
coloro sui quali l'ateismo potrebbe influire. Se ci sono atei, cio'
prova semplicemente che le prove dell'esistenza di Dio non valgono
niente." (Felix Le Dantec)

 
Perche' prima aveva /bin/sh linkato a /bin/bash.
Adesso, probabilmente (non ce l'ho, quella distribuzione, guardaci tu)
ha qualche flavour di shell diversa.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 ha qualche flavour di shell diversa.
ca**o, e' vero!
davide@gatewayasteroid:/bin$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2006-10-21 19:23 /bin/sh -> dash
era cosi' semplice, perche' non ci ho pensato prima!
-- 
"Dio era una soluzione e non ne troveremo mai una altrettanto
soddisfacente." (Emil Michel Cioran)

 
Perche' non hai un manifesto 2x2 davanti al naso con su
la legge di Occam. ;-)


 lrwxrwxrwx 1 root root 4 2006-10-21 19:23 /bin/sh -> dash
tra l'altro
ma che roba e' "dash"? a casa mia era un detersivo!
-- 
Under construction

> ma che roba e' "dash"? a casa mia era un detersivo!
8-)
e' un clone "leggero" di bash
http://packages.debian.org/stable/shells/dash
-- 
"La chiesa, un luogo dove un popolo imbecille si reca, senza
riflettere, a salutare un pezzo di pane." (Manon P. Roland)