Salve a tutti. Premetto che di script di bash me ne intendo pochino; mi hanno dato uno script che serve a ridurre la banda allocata ad una classe udp (creata mediante tc) di 0.3Mbps ogni 30 secondi.

Lo script è il seguente:

Codice PHP:
bash$ for x in $(seq 0.0 0.3 2.0) ; do
sleep 30
rate
=$(echo $x tr ',' '.' awk '{print 2.0-$1}')
sudo tc class change ... rate ${rate}mbit 
dunque la prima riga crea un ciclo for che ciclerà per valori di x da 0.0 a 2.0, incrementando di 0.3 il valore di x ad ogni ciclo.

la seconda riga farà semplicemente passare 30secondi

la terza riga calcola il valore da mettere nella variabile rate e (credo) che stampi qualcosa sulla shell che indica il cambiamento

la quarta riga aggiorna la classe tc relativa.

ora: così non funziona. la shell mi indica 2 errori.

1. Awk il carattere '?' non è riconosciuto (quindi qui credo ci sia qualche errore di sintassi nella terza riga).

2. un errore su tc.

Per il secondo mi son detto: bè, è normale, non gli dico quale classe cambiare...probabilmente devo sostituire i ... con i dettagli della classe. Quindi ho modificato così:

Codice PHP:
sudo tc class change dev lo parent 1:1 classid 1:20 rate ${rate}mbit 
ma a questo punto mi da un altro errore: tc rate is classless.

Considerando che le classi create con tc son create correttamente, e che la classe alla quale togliere banda è identificata da classid 1:20 con parent 1:1, qualcuno sa dirmi come potrei operare?

grazie mille in anticipo