Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Script con condizione IF

    Da Linux devi fare uno script da eseguire in Crontab ove verifica che se il contenuto di un file (/etc/prova) è uguale a "1" mi fa lancia un determinato comando.

    Qualcuno mi da una dritta?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,526
    Se vuoi verificare che /etc/prova sia un file regolare usa :

    #!bin/bash
    if [ -f /etc/prova ]
    then
    esegui_comando
    fi

    Se vuoi verificare che il contenuto del file sia il numero 1 usa :

    #!bin/bash
    if [ $(cat /etc/prova) == "1" ]
    then
    esegui_comando
    fi

  3. #3
    Gentilissimo!

    Grazie !

  4. #4
    Non riesco a farlo funzionare

    Ho salvato il codice con nome control.sh e lo eseguo con il comando:

    $ sh control.sh

    Questo è il codice:
    codice:
    #!bin/bash
    if [ $(cat /etc/report/inviato) == "1" ]
    then
            echo "ciao"
    fi
    E mi da sempre questo errore:

    [: 5: 1: unexpected operator

    Grazie mille

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Prova con

    codice:
    #!/bin/bash
    
    if [ "$(cat /etc/report/inviato)" == "1" ]
    then
            echo "ciao"
    fi
    nota che era da aggiustare anche l'indicazione dell'interprete, mancava un / iniziale. Ti consiglio anche di sopprimere eventuali messaggi di errore del comando cat con 2> /dev/null
    every day above ground is a good one

  6. #6
    Risolto.
    Ci voleva un solo = anzicchè ==

    Grazie.

    Ciao a tutti.

  7. #7
    Originariamente inviato da WillyLord
    Risolto.
    Ci voleva un solo = anzicchè ==

    Grazie.

    Ciao a tutti.
    Okkio che = e` assegnazione, non uguaglianza.

    codice:
    Z:~/tmp$ echo 1 > qq
    Z:~/tmp$ if [ "$(cat qq)" == "1" ]; then echo "OK"; else echo "NO"; fi
    OK
    Z:~/tmp$ if [ "$(cat qq)" == "2" ]; then echo "OK"; else echo "NO"; fi
    NO
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  8. #8
    Infatti è molto strano, ma funziona.

    Proprio non ho parole. In caso negativo però mi da un errore, ma non mi interessa.

    L'importante è che funziona quando il file è =1

  9. #9
    E quando e` diverso da 1?
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  10. #10
    Sempre quell'errore che dicevo prima:

    [: 5: 1: unexpected operator


    Già che ci troviamo ho un altro problema che mi sta facendo impazzire.

    Questo script .SH l'ho messo in crontab di root ma non me lo esegue.

    */1 * * * * /bin/sh /etc/report/control.sh >> /etc/prova.log

    Vorrei eseguirlo ogni minuto ma non ve nuove sapere, con e senza /bin/sh

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.