Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di GunMan
    Registrato dal
    Dec 2005
    Messaggi
    2,642

    [scripting] Assegnare una variabile da riga di comando

    salve a tutti

    scusate per il titolo ma non me ne veniva in mente uno migliore.

    sono sicuro che mi sto perdendo nel classico bicchiere d'acqua ma non riesco a trovare un modo decente per impostare una variabile all'interno di uno script che sto realizzando.

    in sostanza avrei la necessità che, una volta che lo script viene eseguito, possa venire impostata una variabile che esso utilizza mediante console.

    questa variabile serve in pratica a terminare il ciclo che esegue lo script, un semplicissimo test di ping.

    spero di essermi spiegato nel caso non aveste capito bene non fatevi problemi a domandare, cercherò di essere meno lacunoso nella spiegazione.

    grazie anticipatamente per le eventuali risposte

    Chaos A.D. Disorder unleashed.
    Starting to burn. Starting to lynch.
    Silence means death. Stand on your feet.
    Inner fear. Your worst enemy.

    Refuse / Resist

  2. #2
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    piu' che una variabile di ambiente, opterei per la creazione (touch) di un file di testo "parlante"
    esempio:
    codice:
    # codice script
    ...
    file="/path/to/basta_con_questo_ping"
    ciclo {
      esiste "$file" ?
        # si
          elimina "$file"
          esci dal ciclo
        # no
          lancia un ping
    }
    Da shell, che ha un ambiente diverso da quello con cui gira lo script, ti bastera'
    codice:
    touch /path/to/basta_con_questo_ping
    per interrompere lo script.

    potresti comodamente definirti un alias per questa azione.

    ciao
    slack? smack!

  3. #3
    Utente di HTML.it L'avatar di GunMan
    Registrato dal
    Dec 2005
    Messaggi
    2,642
    innanzitutto ti ringrazio cacao per le tue risposte sempre molto pertinenti

    la tua soluzione in effetti è molto interessante, provo però a spiegarti meglio cosa avevo in mente anche solo per capire se è possibile o no, a titolo informativo diciamo.

    bene io ho un qualcosa del genere

    codice:
    #!/bin/bash
    # script per monitorare il ping
    ping xxx.x.xxx.xxx -q -c 10 1>>statistiche_ping.txt; date 1>>statistiche_ping.txt
    durata=0
    until [ $durata -eq 48 ]; do
    sleep 15m
    ping xxx.x.xxx.xxx -q -c 10 1>>statistiche_ping.txt; date 1>>statistiche_ping.txt
    durata=$(( $durata + 1 ))
    done
    echo "Test ultimato, il log statistiche_ping.txt è nella directory corrente"
    exit
    come vedi è molto semplice, lo script esegue un test su un IP prestabilito e lo ripete ogni 15 minuti per 12 ore (circa), vorrei in sostanza modificarlo in modo tale da assegnare una variabile INIZIO e una TERMINE.

    la variabile INIZIO leggerebbe la data in cui viene lanciato lo script mentre quella termine dovrebbe essere impostata dall'utente che lancia lo script.

    tutto ciò è fattibile?

    ti ringrazio ancora per la disponibilità

    Chaos A.D. Disorder unleashed.
    Starting to burn. Starting to lynch.
    Silence means death. Stand on your feet.
    Inner fear. Your worst enemy.

    Refuse / Resist

  4. #4
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    ok.
    se non ho inteso male, ti bastera' far leggere al tuo script, due parametri passati sulla riga di comando
    Ad esempio, lanciando:
    $ ./mio_script data_fine
    Il tuo script, dovra' prevedere:
    codice:
    ...
    nomescript="$0"
    fine="$1"
    inizio="$(date)" #valuta come formattare la data
    ...
    # lascio a te la gestione di questi due valori
    ciao
    slack? smack!

  5. #5
    Utente di HTML.it L'avatar di GunMan
    Registrato dal
    Dec 2005
    Messaggi
    2,642
    grazie cacao per gli utili suggerimenti

    vedrò di sbrogliare la matassa, magari se riesco a fare qualcosa di decente posto la soluzione sperando possa essere utile a qualcuno

    Chaos A.D. Disorder unleashed.
    Starting to burn. Starting to lynch.
    Silence means death. Stand on your feet.
    Inner fear. Your worst enemy.

    Refuse / Resist

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.