Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Linux/bash] conversione stringa

    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

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [Linux/bash] conversione stringa

    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
    Esempio:
    codice:
    set `du -s`
    SIZE=$1
    
    if [ $SIZE -gt 1000 ]; then
    ....bla.bla...
    Nota: il -h di du ti fornisce una informazione "human readable" ma poco utile se devi manipolare numeri!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    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

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    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
    Certo.
    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:
    codice:
    1151    .
    la prima riga verrebbe eseguita come se fosse scritta:
    codice:
    set 1151    .
    Il comando set prende gli N parametri e li assegna alle variabili $1, $2, $3, ecc...
    Quindi SIZE=$1 prende il primo parametro che vale "1151".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    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

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    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...
    Sì, $1, $2, ecc... sono i parametri passati allo script ma il comando set consente di assegnare dei nuovi valori a queste variabili "speciali".

    Esempio di script:
    codice:
    DIR=$1    # Salvo parametro 1 !!!
    
    set `du -s $DIR`
    SIZE=$1
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    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

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da valer_85
    quindi dopo le istruzioni ke hai scritto tu nn potrei + accedere al vero valore del paramentro passato allo script?
    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.

    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:
    codice:
    echo "[$1]"
    echo "[$2]"
    echo "[$3]"
    echo "[$4]"
    
    set `echo "aa bb"`
    
    echo "[$1]"
    echo "[$2]"
    echo "[$3]"
    echo "[$4]"
    Avvialo passando 4 parametri.

    Originariamente inviato da valer_85
    da quel momento $1 varrà `du -s $DIR` ?
    No.
    Se $DIR contiene per esempio "/sbin", `du -s $DIR` può fornire in output per esempio:
    codice:
    13498   /sbin
    Allora il set imposta $1="13498" e $2="/sbin"
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    domani provo, se ho dei problemi riposto... grazie mille ciaociao
    V+K

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.