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
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
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
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:
E mi da sempre questo errore:codice:#!bin/bash if [ $(cat /etc/report/inviato) == "1" ] then echo "ciao" fi
[: 5: 1: unexpected operator
Grazie mille
Prova con
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/nullcodice:#!/bin/bash if [ "$(cat /etc/report/inviato)" == "1" ] then echo "ciao" fi
every day above ground is a good one
Risolto.
Ci voleva un solo = anzicchè ==
Grazie.
Ciao a tutti.
Okkio che = e` assegnazione, non uguaglianza.Originariamente inviato da WillyLord
Risolto.
Ci voleva un solo = anzicchè ==
Grazie.
Ciao a tutti.
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
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
E quando e` diverso da 1?
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