ciao, come faccio a ottenere la dimensione di una cartella? col comando du -sh ottengo una stringa, invece a me serve un intero, x poterlo confrontare... come faccio? grazie
ciao, come faccio a ottenere la dimensione di una cartella? col comando du -sh ottengo una stringa, invece a me serve un intero, x poterlo confrontare... come faccio? grazie
V+K
Esempio:Originariamente inviato da valer_85
ciao, come faccio a ottenere la dimensione di una cartella? col comando du -sh ottengo una stringa, invece a me serve un intero, x poterlo confrontare... come faccio? grazie
Nota: il -h di du ti fornisce una informazione "human readable" ma poco utile se devi manipolare numeri!codice:set `du -s` SIZE=$1 if [ $SIZE -gt 1000 ]; then ....bla.bla...
ah grazie mille! ho messo -sh... sembra andare lo stesso... mi puoi spiegare a cosa servono le prime 2 righe? soprattutto il set... grazie
V+K
Certo.Originariamente inviato da valer_85
ah grazie mille! ho messo -sh... sembra andare lo stesso... mi puoi spiegare a cosa servono le prime 2 righe? soprattutto il set... grazie
Credo che tu sappia che il backquote (`) serve per far eseguire un comando "catturando" l'output generato.
Quindi supponendo che du -s ti fornisca in output per esempio:
la prima riga verrebbe eseguita come se fosse scritta:codice:1151 .
Il comando set prende gli N parametri e li assegna alle variabili $1, $2, $3, ecc...codice:set 1151 .
Quindi SIZE=$1 prende il primo parametro che vale "1151".
quindi $1 nn è il parametro passato allo script? come faccio a dirgli di leggere la dimensione della cartella ke passo allo script come argomento?
scusa ma nn capisco...
V+K
Sì, $1, $2, ecc... sono i parametri passati allo script ma il comando set consente di assegnare dei nuovi valori a queste variabili "speciali".Originariamente inviato da valer_85
quindi $1 nn è il parametro passato allo script? come faccio a dirgli di leggere la dimensione della cartella ke passo allo script come argomento?
scusa ma nn capisco...
Esempio di script:
codice:DIR=$1 # Salvo parametro 1 !!! set `du -s $DIR` SIZE=$1
quindi dopo le istruzioni ke hai scritto tu nn potrei + accedere al vero valore del paramentro passato allo script? da quel momento $1 varrà `du -s $DIR` ?
V+K
Esatto! Le variabili $1, $2, ecc... sono speciali. All'inizio dello script contengono i parametri passati. Poi è possibile riassegnare dei valori a queste variabili con il comando set, ed è l'unico modo per farlo. E i parametri iniziali vengono persi, mi sembra ovvio.Originariamente inviato da valer_85
quindi dopo le istruzioni ke hai scritto tu nn potrei + accedere al vero valore del paramentro passato allo script?
Poi se ci pensi un attimo, se hai la variabile $PIPPO, puoi fare PIPPO=123 ma se hai $1, non puoi fare 1=123!!!!!
Per capire meglio, prova questo script:
Avvialo passando 4 parametri.codice:echo "[$1]" echo "[$2]" echo "[$3]" echo "[$4]" set `echo "aa bb"` echo "[$1]" echo "[$2]" echo "[$3]" echo "[$4]"
No.Originariamente inviato da valer_85
da quel momento $1 varrà `du -s $DIR` ?
Se $DIR contiene per esempio "/sbin", `du -s $DIR` può fornire in output per esempio:
Allora il set imposta $1="13498" e $2="/sbin"codice:13498 /sbin
domani provo, se ho dei problemi riposto... grazie mille ciaociao
V+K