Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
#!/bin/bash
function imount(){
for i in $(seq 1 $N); do
mount $PERIF $MOUNTP
umount $PERIF
done
}
#main
MOUNTP=/mnt/prova
PERIF=/dev/sda1
N=2
if [[ ! -d $MOUNTP ]]; then
mkdir $MOUNTP
fi
time imount
rmdir $MOUNTP
Una cosa del genere?...
Attento perchè la prima volta potrebbe fallire, dopo aver fisicamente attaccato la periferica (diciamo una penna usb) dai il tempo al sistema di riconscerla prima di lanciare il comando.
Magari la si può considerare questa cosa con dei controlli sulla riuscita delle operazioni, ma questo creerebbe comunque delle attese attive che andrebbero a "corrompere" il tempo impiegato per l'operazione.
#!/bin/bash
function imount(){
for i in $(seq 1 $N); do
mount $PERIF $MOUNTP
umount $PERIF
done
}
#main
MOUNTP=/mnt/prova
PERIF=/dev/sda1
N=2
if [[ ! -d $MOUNTP ]]; then
mkdir $MOUNTP
fi
time imount
rmdir $MOUNTP
Una cosa del genere?...
Attento perchè la prima volta potrebbe fallire, dopo aver fisicamente attaccato la periferica (diciamo una penna usb) dai il tempo al sistema di riconscerla prima di lanciare il comando.
Magari la si può considerare questa cosa con dei controlli sulla riuscita delle operazioni, ma questo creerebbe comunque delle attese attive che andrebbero a "corrompere" il tempo impiegato per l'operazione.
Spero ti possa essere d'aiuto.
rock
Ti ringrazio. Sei stato gentilissimo. Solo una domanda:
in che modo potrei far apparire, alla fine, una stringa di testo che mi specifichi il tempo impiegato per l'esecuzione della funzione? Cioe' vorrei che apparisse una scritta del genere:
#!/bin/bash
function imount(){
for i in $(seq 1 $N); do
mount $PERIF $MOUNTP
umount $PERIF
done
}
#main
MOUNTP=/mnt/prova
PERIF=/dev/sda1
N=2
if [[ ! -d $MOUNTP ]]; then
mkdir $MOUNTP
fi
time imount
rmdir $MOUNTP
Una cosa del genere?...
Attento perchè la prima volta potrebbe fallire, dopo aver fisicamente attaccato la periferica (diciamo una penna usb) dai il tempo al sistema di riconscerla prima di lanciare il comando.
Magari la si può considerare questa cosa con dei controlli sulla riuscita delle operazioni, ma questo creerebbe comunque delle attese attive che andrebbero a "corrompere" il tempo impiegato per l'operazione.
Spero ti possa essere d'aiuto.
rock
Ti ringrazio. Sei stato gentilissimo. Solo una domanda:
in che modo potrei far apparire, alla fine, una stringa di testo che mi specifichi il tempo impiegato per l'esecuzione della funzione? Cioe' vorrei che apparisse una scritta del genere:
"tempo impiegato per l'esecuzione: X secondi"
Grazie ancora
Ciao
Come hai notato il comando time ti offre più risposte.. a quale in particolare sei interessato?
rock
ti spiega che significa:
in pratica quanto tempo è speso in
user mode
e
kernel mode
Dovresti saperne un po' di sistemi operativi per capire la differenza che intercorre. Cerca un po' in rete:
modalità supervisore e modalità utente.
Per estrapolare solo real non riesco a farlo...pare che non si comporti come un classico comando (processo) unix..non riesco a reinderizzarne l'output. sorry.
Magari qualcuno ne conosce il motivo e sa risolvere il problema ?!
L'unico problema è che non riesco a usare /usr/bin/time su una funzione dello script.
La soluzione più facile diventa dividere lo script in due file, uno che monta e smonta N volte e l'altro che calcola il tempo di esecuzione del primo.
Se nessuno ha idee e se ti interessa lo stesso (legionario) ti posto i due script.
d4z_c0nf ha scritto:Grazie ad entrambi ora ho capito.
L'unico problema è che non riesco a usare /usr/bin/time su una funzione dello script.
La soluzione più facile diventa dividere lo script in due file, uno che monta e smonta N volte e l'altro che calcola il tempo di esecuzione del primo.
Se nessuno ha idee e se ti interessa lo stesso (legionario) ti posto i due script.
rock
Nello script devi mettere
/usr/bin/time con tutto il path!
Nei miei script non uso _mai_ echo, sempre e solo
/bin/echo
portabile su ogni macchina.
d4z_c0nf ha scritto:Grazie ad entrambi ora ho capito.
L'unico problema è che non riesco a usare /usr/bin/time su una funzione dello script.
La soluzione più facile diventa dividere lo script in due file, uno che monta e smonta N volte e l'altro che calcola il tempo di esecuzione del primo.
Se nessuno ha idee e se ti interessa lo stesso (legionario) ti posto i due script.
rock
Nello script devi mettere
/usr/bin/time con tutto il path!
Nei miei script non uso _mai_ echo, sempre e solo
/bin/echo
portabile su ogni macchina.
sì sì certo metto quello, intendevo dire che se come paramatro a
/usr/bin/time
do una funzione dello script stesso mi risponde
d4z_c0nf ha scritto:Grazie ad entrambi ora ho capito.
L'unico problema è che non riesco a usare /usr/bin/time su una funzione dello script.
La soluzione più facile diventa dividere lo script in due file, uno che monta e smonta N volte e l'altro che calcola il tempo di esecuzione del primo.
Se nessuno ha idee e se ti interessa lo stesso (legionario) ti posto i due script.
rock
Nello script devi mettere
/usr/bin/time con tutto il path!
Nei miei script non uso _mai_ echo, sempre e solo
/bin/echo
portabile su ogni macchina.
sì sì certo metto quello, intendevo dire che se come paramatro a
/usr/bin/time
do una funzione dello script stesso mi risponde