Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di tenchi
    Registrato dal
    Sep 2003
    Messaggi
    36

    aiuto per shell scripting

    Egregi signori del forum, ancora una volta vi interpello per avere un piccolo aiuto da voi.

    cercherò di essere breve;
    questo è il mio piccolo scriptino che mi permette di abilitare un IP locale solamente cambiando alcuni parametri senza dover necessariamente lanciare ogni volta il comando "ifconfig eth0 ... etc.":
    codice:
    #!/bin/bash
    #
    #
    
    comm=3                           # DEFINISCI IL PARAMETRO DI ESECUZIONE
                                    # comm=1        cambio rete
                                    # comm=2        cambio ip
                                    # comm=3        cambio gateway
    
    ## DEFINIZIONE VARIABILI DA MODIFICARE PER L'IP
    
    int="eth0"                      # Identificazione interfaccia da modificare
    ch_ip=10.0.1.20                 # Definizione IP assegnato alla macchina locale
    ch_net=255.255.255.0            # Definizione NETMASK della rete
    ch_bct=10.0.1.255               # DEfinizione del BROADCAST dell'intranet
    
    IP=`/sbin/ifconfig $int $ch_ip netmask $ch_net broadcast $ch_bct up`
    
    ## DEFINIZIONE VARIABILI DA MODIFICARE PER IL GATEWAY
    
    on=add
    off=del
    gw=10.0.1.2
    
    GW=`/sbin/route $on default $gw`
    
    if [ $comm=='1' ];then
       [ $IP $GW ]
    elif [ $comm=='2' ];then
       [ $IP ]
    elif [ $comm=='3' ];then
       [ $GW ]
    fi
    
    
    exit 0
    ora: avrei bisogno una mano per permettere di controllare anche la parte di codice rossa che purtroppo non riesco ad eseguire, o meglio: anche se imposto la variabile $comm, a monte dello script, non mi processa correttamente l'IF mi prende il "$comm==1" senza però abilitarmi il gateway. sono disperato, POTETE AIUTARMI? sapete indicarmi se sbaglio qalcosa nella definizione della variabile o nel richiamo della stessa?

    Ringrazio anticipatamente per l'attenzione e saluto

    .:: TENCHI ::.
    Secondo alcuni autorevoli testi di tecniche aeronautiche, il calabrone non può volare, a causa della forma del corpo in rapporto alla superficie alare. Ma il calabrone non lo sa e perciò continua a volare.
    Igor Sikorsky

  2. #2
    Prova così:

    codice:
    if [ $comm -eq '1' ];then
       $IP $GW
    elif [ $comm -eq '2' ];then
       $IP
    elif [ $comm -eq '3' ];then
       $GW
    fi
    Ciao
    Linux User #332385

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,202
    codice:
    if [ $comm = '1' ];then
        $IP $GW 
    elif [ $comm = '2' ];then
        $IP
    elif [ $comm = '3' ];then
        $GW
    fi
    Debian GNU/Linux sid
    Publishing a theory should not be the end of one's conversation with the universe, but the beginning. (Eric S. Raymond)
    Kernel 2.6.14-ck1

  4. #4
    Utente di HTML.it L'avatar di tenchi
    Registrato dal
    Sep 2003
    Messaggi
    36
    Vi ringrazio per la collaborazione, ma non sono riuscito cmq a risolvere il mio problema... ho utilizzato entrambi gli esempi che mi avete postato, ma senza nessun riusltato, per mia sfortuna, persiste nel cambiarmi la configurazione di rete ma non mi aggiunge il Route corretto.

    se eseguo il comando "IFCONFIG" mi appare la seconda configurazione che ho inserito, ed è corretta, (creo un ipalias per non perdere la connessione al router che utilizzo per navigare durante la fase di test dello script) e all'interno dello scriptino, cerco di cambiarli il default gateway, solo senza risultati, sembra quasi che non processi tutto lo script e si fermi alla configurazione dell'IP.

    Io continuo con le mie fasi di test, se vi viene in mente qlc postate pure, ogni aiuto è ben voluto.

    Grazie ancora...

    .:: TENCHI ::.
    Secondo alcuni autorevoli testi di tecniche aeronautiche, il calabrone non può volare, a causa della forma del corpo in rapporto alla superficie alare. Ma il calabrone non lo sa e perciò continua a volare.
    Igor Sikorsky

  5. #5
    Utente di HTML.it L'avatar di Lasher
    Registrato dal
    Apr 2003
    Messaggi
    183
    Quando usi il test devi metterci le virgolette doppie sui 2 argomenti ( " )

    Quindi prova così

    codice:
    if [ "$comm" = "1" ];then
        $IP $GW 
    elif [ "$comm" = "2" ];then
        $IP
    elif [ "$comm" = "3" ];then
        $GW
    fi
    Ciauz
    Star Wars Fan


    Jam

  6. #6
    Utente di HTML.it L'avatar di tenchi
    Registrato dal
    Sep 2003
    Messaggi
    36
    yuhuuuuuu.....:tongue: :tongue:


    bella lì... sono riuscito a trovare l'errore, non ho risolto completamente i miei problemi ma è già qualcosa... vi spiego subito:
    nella variabile dove definisco il comando da eseguire per impostare il nuovo gateway (GW) avevo dimenticato un piccolo parametro che vi indico nella parte di codice sottostante con il colore BLU
    codice:
    GW='/sbin/route $on default gw $gw'
    e di conseguenza mi dava un errorino riferito ad un device che non trovava. Attualmente riesco a fargli eseguire tutta parte di script relativa all'impostazione dei parametri, solo non riesco a fargli eseguire il comando relativo al valore che gli passo tramite la viariabile comm per andare a recuperare nella parte degli IF cosa fare.

    Sapete per caso come aiutarmi? Propormi qlc di diverso rispetto ai vari IF che definisco?

    Vi ringrazio nuovamente per l'attenzione.

    .:: TENCHI ::.
    Secondo alcuni autorevoli testi di tecniche aeronautiche, il calabrone non può volare, a causa della forma del corpo in rapporto alla superficie alare. Ma il calabrone non lo sa e perciò continua a volare.
    Igor Sikorsky

  7. #7
    Utente di HTML.it L'avatar di Lasher
    Registrato dal
    Apr 2003
    Messaggi
    183
    Originariamente inviato da tenchi
    non riesco a fargli eseguire il comando relativo al valore che gli passo tramite la viariabile comm per andare a recuperare nella parte degli IF cosa fare.

    Sapete per caso come aiutarmi? Propormi qlc di diverso rispetto ai vari IF che definisco?

    Vi ringrazio nuovamente per l'attenzione.

    .:: TENCHI ::.
    Decisamente non ho capito cosa intendi. Non ti funziona la sequenza dei vari test sul valore della variabile "comm"?
    Star Wars Fan


    Jam

  8. #8
    Utente di HTML.it L'avatar di tenchi
    Registrato dal
    Sep 2003
    Messaggi
    36
    mi spiace Lasher, nemmeno il tuo metodo funziona, mi carica sempre e solo il primo di if, non so se sbaglio qlc altro oppure... bho non so che cosa pensare...

    grazie

    .:: TENCHI ::.
    Secondo alcuni autorevoli testi di tecniche aeronautiche, il calabrone non può volare, a causa della forma del corpo in rapporto alla superficie alare. Ma il calabrone non lo sa e perciò continua a volare.
    Igor Sikorsky

  9. #9
    Utente di HTML.it L'avatar di tenchi
    Registrato dal
    Sep 2003
    Messaggi
    36
    si infatti... allora, se guardi lo script, all'inizio c'è una variabile "comm" dove passandogli un numero (1,2,o3) posso fargli cambiare o IP e GATEWAY (1) oppure solo IP (2) oppure solo il GATEWAY (3). cambiando qs, nella mia mente bacata dovrei poter utilizzare qs script per evitare di lanciare le 2 stringhe di configurazione da linea di comando, solo che non riesco a fargli processare le 3 fasi dello scriptino...
    Secondo alcuni autorevoli testi di tecniche aeronautiche, il calabrone non può volare, a causa della forma del corpo in rapporto alla superficie alare. Ma il calabrone non lo sa e perciò continua a volare.
    Igor Sikorsky

  10. #10
    Utente di HTML.it L'avatar di Lasher
    Registrato dal
    Apr 2003
    Messaggi
    183
    allora per quanto riguarda il funzionamento dei test a me funge benissimo:

    codice:
    lasher@darkstar:~$ cat cacchiata
    #!/bin/bash
     
    if [ "$1" = "1" ]; then
      echo "parte prima"
        elif [ "$1" = "2" ]; then
          echo "parte seconda"
        elif [ "$1" = "3" ]; then
          echo "parte terza"
        else echo "non contemplato"
    fi
    lasher@darkstar:~$ ./cacchiata 1
    parte prima
    lasher@darkstar:~$ ./cacchiata 2
    parte seconda
    lasher@darkstar:~$ ./cacchiata 3
    parte terza
    lasher@darkstar:~$ ./cacchiata 4
    non contemplato
    ed è identico al tuo sistema di if nidificato.

    Poi la Bash riconosce i valori dei parametri. Come hai visto ho messo dopo il nome dello script un valore che viene processato con la variabile $1

    Spero di esserti d'aiuto

    Ciauz
    Star Wars Fan


    Jam

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.