Newsgroup: it.comp.os.linux.iniziare
Titolo: Pausa in uno script

Sapete come fare ad inserire una pausa di un tempo determinato in uno script
della shell?
Ho fatto un semplice script per montare un disco esata (vedi un mio post del
24/9) composto di queste 2 istruzioni:
echo "scsi add-single-device 6 0 0 0" | sudo tee -a /proc/scsi/scsi
sudo mount /dev/disk/by-id/ata-ST3500630AS_9QG1BY33-part2 /media/vantec
Purtroppo il mount viene effettuato quando il /dev del disco non � ancora
stato creato, anche se il processo � gi� in corso. Se il mount venisse
fatto circa 1 secondo dopo (forse anche meno), tutto dovrebbe andare bene.
Ho trovato il modo di fare s� che ci sia da premere un tasto per continuare,
ma vorrei rifinire il tutto con qualcosa di pi� automatico.
Altra soluzione, ancora pi� elegante, � fare partire il mount non appena il
dev viene creato, ma qui temo che le cose diventino pi� complicate.

 della shell?
sleep NUMBER[SUFFIX]

 complicate.
una cosa del genere?
DEVICE="/dev/disk/by-id/ata-ST3500630AS_9QG1BY33-part2"
while true;
do
	if [ -a $DEVICE];then          
		sudo mount $DEVICE /media/vantec
		exit
	fi
done

 	if [ -a $DEVICE ];then          

 done
Consiglio caldamente una sleep 0.1 in mezzo per non mandare in bomba 
il processo/sistema (fork bomb anyone?).
-- 
Vide


Che ne dici di un
DEVICE="/dev/disk/by-id/ata-ST3500630AS_9QG1BY33-part2"
while [ ! -a "$DEVICE" ]
do
     echo -ne '.'
     sleep 1
done
sudo mount $DEVICE /media/vantec
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 done
Ti ringrazio, funziona.
Non conoscevo la sintassi -a da inserire nelle condizioni per vedere se il
file esiste. Dove potrei trovare informazioni a riguardo?
Il man in questo caso non mi sembra molto di aiuto.

 sudo mount $DEVICE /media/vantec
Ti ringrazio per la risposta
Ho provato anche questa soluzione, ma non funziona: fa una fila infinita di
punti, anche dopo che il device � stato creato.
Forse qualcosa non va nella sintassi della condizione?
Chiedo anche a te: sai se c'� un documento, un man o qualcosa
in /usr/share/doc in cui possa trovare come scrivere condizioni tipo quella
sopra?

 Forse qualcosa non va nella sintassi della condizione?
Ovviamente s� :-)
ho copiato brutalmente ma sbagliando. E' da mettere "-b" al posto di "-a" 
perch� fai il check sul block device.
man test
Se poi volessi fare le cose in modo migliore dovresti sfruttare udev e 
crearti una rule apposita (� udev che crea il device, quindi lui sa 
esattamente quando viene creato).


 E' da mettere "-b" al posto di "-a" perch� fai il check sul block device.
E ovviamente devi mettere il device corretto (
p.es
. /dev/hdc2)




usti se hai ragione!

 Il man in questo caso non mi sembra molto di aiuto.
no non ti aiuta, devi leggere un manuale di probramazione bash.
tipo questo:
http://www.faqs.org/docs/bashman/bashref_toc.html

 Il man in questo caso non mi sembra molto di aiuto.
Testi generali sullo scripting possono essere
Advanced Bash Scripting di Mendel Cooper Tradotto anche in ita mi
pare
E poi ne avevo visto un altro in inglese ma fatto bene:
Bash Guide for Beginners di Machtelt Garrels
La documentazione sullo scripting bash non manca, ma a volte qua
ho trovato buoni consigli ed esempi d'esperienza che nei libri �
difficile trovare  ;-)
Le domande che fai sono comunque facilmente reperibili, come ti
hanno anche gi� risposto, il manuale � da quella parte...
tuttavia capisco che non sempre � molto loquace per cui due
paginette spiegate con calma sono l'ideale, poi se i prolemi sono
particolari chiedi qui e se ne discute  ;-D

 usti se hai ragione!
Dove lo metto? Va bene tra fi e done?
Dove risiederebbe il pericolo?
Non dovrebbe avviare un processo per ciclo per diventare una fork bomb?
Sono scarso in programmazione, ma sono comunque curioso :-)
In ogni modo a me funziona anche senza sleep, ma lo metter� per prudenza.

 difficile trovare  ;-)
Pi� che altro un linguaggio, anche se di scripting, non � una cosa che possa
essere imparata aprendo la pagina del man quando serve, lo ho visto anche
oggi. Serve molto tempo per leggersi libri per intero. Spesso per� si usano
gli script solo per risolvere semplici problemini e, a meno che non ci sia
dietro una passione specifica, studiare tanto per scrivere 30 righe di
codice all'anno non ha molto senso. Ecco che il parere degli esperti
diventa preziosissimo.

 gli script solo per risolvere semplici problemini
Per esperienza, ma forse � una propensione personale, non
so...posso dire che finche non avevo un minimo di conoscenza di
scripting bash alcuni "problemi" non me li ponevo.
Iniziando poi a conoscere le basi del linguaggio e crescendo un
po' l'esperienza nella sua applicazione sulla gestione del
sistema operativo, devo dire che ho trovato spondaneo, non dico
risolvere le cose ma anche migliorarne alcuni aspetti con piccoli
o meno piccoli script bash.
Voglio dire che se ti leggi il libro per intero potrebbe essere
che vedi meglio diverse cose che potrebbero funzionare in modo
pi� efficente per le tue esigenze se fossermo magari controllate
con un certo scriptino...
Se non leggi il libro le prendi per buone e magari senza
accorgertene ti raffronti tutti i giorni con qualcosa di scomodo,
ma che in fondo ti sembra giusto cos�, perch� � sempre stato
cos�... insomma non so se mi spiego.
Detto meglio solo con la conoscnza puoi apprezzare dettagli
solo apparentemente ininfluenti.
Va b�...


 Sono scarso in programmazione, ma sono comunque curioso :-)
Sì, per essere una fork bomb dovrebbe fare una qualche fork dentro il 
ciclo (infinito), però avere un while true che gira a tavoletta non è 
mai buona idea.
-- 
Vide