Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Istruzioni bash per ritornare più di un valore

    Ciao a tutti!!!!!
    C'è qualcuno che mi sa dire se esistono delle istruzioni bash per far ritornare ad una funzione un array e per poi prendere i valori di questo array ritornato dalla funzione?????!!!!!
    Grazie

  2. #2
    Ti posto una funzione che avevo fatto io che inizializza un array e poi lo scorre.
    Codice PHP:
    # Show information about partitions (SHOW 0.2rc2)
    disk () {
        
    DEV=`df | grep /dev  | awk {'print $1'}`      # devices presents on df
        
    NUM_DEVICES=`df | grep /dev | wc -l`          # number of devices presents on df
        
    HDDTEMP=`which hddtemp`                       # path of hddtemp binary
        #Show partitions
        
    echo -"---- Mounted Partitions ----"
        
    for d in $DEV;
        do
            
    device=( "${device[@]}$DEV )            # create array with devices presents on df
        
    done
        
    for (( x=0x<$NUM_DEVICESx++ ))
        do
            for 
    i in ${device[$x]};
            do
                if [ -
    "$i]; then
                    
    echo -"|_ Partitions: `basename $i`"
                    
    echo -"  \\_"
                    
    echo -"    |_ Size: `df -h | grep $i | awk {'print $2'}`"
                    
    echo -"    |_ Used: `df -h | grep $i | awk {'print $3'}` (`df | grep $i | awk {'print $5'}`)"
                    
    echo -"    |_ Available: `df -h | grep $i | awk {'print $4'}`"
                    
    echo -"    |_ Mount Point: `df | grep $i | awk {'print $6'}`"
                    
    echo -"    |_ Filesystem: `mount | grep $i | awk {'print $5'}`"
                    
    echo -"    |_ Options: `mount | grep $i | awk {'print $6'} | sed {s/\(//g} | sed {s/\)//g}`"
                    
    if [[ -f $HDDTEMP ]]; then          # if hddtemp is installed
                        
    SENSOR=`${HDDTEMP} $i | awk {'print $5$6$7'}`
                        if [ 
    "$SENSOR"S.M.A.R.T.notavailable" ]; then
                            
    echo -"    |_ Temperature: not available"
                        
    else
                            echo -
    "    |_ Temperature: `${HDDTEMP} ${device[$x]} | grep /dev | awk {'print $5'}` "
                        
    fi;
                    else
                        echo -
    "    |_ Info: install hddtemp for temperature monitoring"
                    
    fi;
                    echo 
    ""
                
    fi;
            
    done
        done

    Powered by Fedora & CentOS
    Here I am, brain the size of a planet..

  3. #3
    Utente di HTML.it L'avatar di MatCap83
    Registrato dal
    Jun 2005
    residenza
    Firenze
    Messaggi
    1,319

    Re: Istruzioni bash per ritornare più di un valore

    Originariamente inviato da Azzurra85
    Ciao a tutti!!!!!
    C'è qualcuno che mi sa dire se esistono delle istruzioni bash per far ritornare ad una funzione un array e per poi prendere i valori di questo array ritornato dalla funzione?????!!!!!
    Grazie
    Ciao "azzurra" (poi mi devi spiegare il nick! che son curioso), eccomi in tuo soccorso ... sempre nella guida che ti ho indicato si parla brevemente di array:

    http://www.pluto.it/files/ildp/guide...l#COMPLEXFUNCT

    facendo un esempio con una stringa, ma vale lo stesso con gli array! Bisogna usare una variabile opportuna!

    "Per fare in modo che una funzione possa restituire una stringa o un array , si deve fare ricorso ad una variabile dedicata.
    1 conteggio_righe_di_etc_passwd()
    2 {
    3 [[ -r /etc/passwd ]] && REPLY=$(echo $(wc -l < /etc/passwd))
    4 # Se /etc/passwd ha i permessi di lettura, imposta REPLY al
    5 #+ numero delle righe.
    6 # Restituisce o il valore del parametro o un'informazione di stato.
    7 # 'echo' sembrerebbe non necessario, ma . . .
    8 #+ rimuove dall'output gli spazi in eccesso.
    9 }
    10
    11 if conteggio_righe_di_etc_passwd
    12 then
    13 echo "Ci sono $REPLY righe in /etc/passwd."
    14 else
    15 echo "Non posso contare le righe in /etc/passwd."
    16 fi
    17
    18 # Grazie, S.C.
    "

    buono studio!

    "Nessuno mi ha visto farlo, e non puoi provarlo in nessun modo!" (Bart Simpson)

    >>> www.ombresulweb.com <<<

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Grazie!!!

    Grazie.....ma comunque ho già risolto in altro modo!!!!!!!!!! in un modo molto più semplice!!!!!
    E''''''hhhhh'''h'h'h'h'h
    La guardo sempre la guida...ma non è facile trovare tutto quello che cerchi subito!!!!!!!!
    E' stata molto utile!!!!

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.