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

    Conteggio byte directory (bash script)

    Salve a tutti,
    ho un problema con uno script bash, lo script prende come argomento una cartella e restituisce la somma delle dimensione dei vari file in esso contenuti.
    Piu' o meno lo script è così:


    function somma_file(){
    ...
    ...
    return $somma
    }


    somma
    valore_var=$?

    echo $valore_var


    Il fatto è che $valore_var retituisce un valore che NON è quello della variabile $somma che si trova nella funzione somma_file() . Infatti se nella funzione somma_file() faccio
    echo $somma (prima del return) stampa il valore corretto!
    Dove sbaglio?


    Grazie
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  2. #2
    Utente di HTML.it L'avatar di Fatur
    Registrato dal
    Nov 2002
    Messaggi
    69
    io farei così:

    codice:
    function somma_file(){
    ...
    ...
    #return $somma
    echo $somma
    }
    
    
    
    #somma
    #valore_var=$?
    valore_var=$(somma_file)
    
    echo $valore_var
    F-(A)-tur Gentoo, e la vita ti sorride!
    Far finta di essere sani...

  3. #3
    Grazie così va.........
    scusa ma il returna che serve ?!??!?!? quindi?!?!? se non passa bene le cose?!??!!?
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  4. #4
    Utente di HTML.it L'avatar di Fatur
    Registrato dal
    Nov 2002
    Messaggi
    69
    (se ben ricordo) la variabile che usi tu "$?" dovrebbe contenere il valore di ritorno dell'ultimo programma che hai richiamato, ma una funzione _non_ è un programma!


    probabilmente esiste un'altra variabile per le funzioni... ma essendo la bash (quasi) per niente tipizzata puoi accontentarti di un echo...

    cmq return può servire anche senza valore di ritorno, anche solo per uscire dalla funzione.

    se qualcuno ne sa di più aggiunga!
    F-(A)-tur Gentoo, e la vita ti sorride!
    Far finta di essere sani...

  5. #5
    Allora una piccola complicazione....
    immagina che la funzione deve avere dei parametri....come faccio a scrivere con la tua soluzione?

    valore_var=$(somma_file var1 var2)

    ... provato ma nn va!

    Tnk
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

  6. #6
    Utente di HTML.it L'avatar di Fatur
    Registrato dal
    Nov 2002
    Messaggi
    69
    come prendi i parametri dentro la funzione? ti ricordo che li trovi come dentro uno script, ovvero in $1 $2 $3...
    F-(A)-tur Gentoo, e la vita ti sorride!
    Far finta di essere sani...

  7. #7
    Utente di HTML.it L'avatar di Fatur
    Registrato dal
    Nov 2002
    Messaggi
    69
    codice:
    function somma_file(){
    #...
    somma=763263
    echo "$somma $1"
    }
    
    
    
    valore_var=$(somma_file hjkdsa)
    
    echo $valore_var
    F-(A)-tur Gentoo, e la vita ti sorride!
    Far finta di essere sani...

  8. #8
    grazie
    "Considerate la vostra semenza:
    fatti non foste a viver come bruti,
    ma per seguir virtute e canoscenza''."
    Dante Alighieri

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 © 2025 vBulletin Solutions, Inc. All rights reserved.