Infatti mi ha chiamato Ciro, tutto allarmato, chè non riusciva a trovare il sacchetto coi numeri.
#!/bin/bash
a=`for i in {1..90}; do echo $i; done | shuf`
clear
for i in $a
do
echo -e "\v\t" $i
echo -e "\v" "Premere invio per continuare, Ctrl+C per uscire dallo script"
read
echo ""
clear
done
exit 0
Posto che avete salvato lo script, "tombola.sh", nella directory Scaricati,$ cd Scaricati
$ chmod +x tombola.sh
$ ./tombola.sh
Alla prossima
a=`shuf -i 1-90` è più compatto.
RispondiEliminaAltrimenti un array da cui estrarre un elemento a caso ($RANDOM%${#array}), visualizzarlo e cancellarlo (unset) per evitare estrazioni doppie. Ma mi sembra una complicazione inutile...
Carino come pensiero.. non conoscevo il comando shuf
RispondiEliminaBello! Neanch'io conoscevo shuf.
RispondiEliminaUna piccola modifica alla modifica proposta da extendedreality: a=$(shuf -i 1-90)
L'uso di $() al posto di `` è raccomandato da una ventina d'anni, prima o poi ci faccio un post perché nessuno lo usa. Sempre che mi ricordi bene e sia davvero così.
Avevo letto da qualche parte la raccomandazione di usare $() per compatibilità e portabilità mi pare. Per abitudine uso quasi sempre i backtick che bash digerisce bene. Forse altre shell non fanno altrettanto.
EliminaComunque un post è bene accetto. Come si dice, "repetita iuvant":
while true; do echo 'Usate $()!'; done
Toh, ho scritto il post!
Non vorrei guastare un po' la situazione..ma..un post era già stato creato tramite il Progetto Bash. Il post fa riferimento alla parta pratica del Progetto curata da me ;).
RispondiEliminahttp://toshidex.org/2011/06/16/progetto-bash-introduzione-pratica-%E2%80%93-parte-iv/
Il mitico Project bash...cavolo, dobbiamo tornare a scrivere. Quando torno da Brescia si ricominicia, ok?? :))
Elimina