Probleme script bash !! redirection fichier..
Résolu
origan31
Messages postés
7
Statut
Membre
-
origan31 Messages postés 7 Statut Membre -
origan31 Messages postés 7 Statut Membre -
Bonjour,
-------
J'ai un fichier "toto.txt" dont le contenu est: "ceci est un exemple"
Je souhaiterais a l'aide d'un bash:
Rediriger le contenu de "toto.txt" dans une variable et dire
si cette variable est = "ceci est un exemple" alors envoyer
un mail sinon ne rien faire.
(mon but est d'envoyer un mail si le contenu d'un fichier texte change).
Merci de votre aide,
climbing31@gmail.com
-------
J'ai un fichier "toto.txt" dont le contenu est: "ceci est un exemple"
Je souhaiterais a l'aide d'un bash:
Rediriger le contenu de "toto.txt" dans une variable et dire
si cette variable est = "ceci est un exemple" alors envoyer
un mail sinon ne rien faire.
(mon but est d'envoyer un mail si le contenu d'un fichier texte change).
Merci de votre aide,
climbing31@gmail.com
A voir également:
- Probleme script bash !! redirection fichier..
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
12 réponses
merci Jipicy, j'ai donc essayer de faire le bash mais sans success :-((
pourrais-tu m'aider ?? voici le petit script :
#! /bin/bash
variable=$(cat toto.txt)
for variable in $variable
if [ "$variable" = "maison" ]
then
ls
fi
Merci,
climbing31@gmail.com
pourrais-tu m'aider ?? voici le petit script :
#! /bin/bash
variable=$(cat toto.txt)
for variable in $variable
if [ "$variable" = "maison" ]
then
ls
fi
Merci,
climbing31@gmail.com
Explique clairement ce que tu veux faire :
- affiche le contenu de ton fichier "toto.txt"
- précise si tu veux rechercher qu'un mot ou une chaîne précise ou encore une ligne ou autre...
- affiche le contenu du répertoire que tu veux lister
- à la place de "for variable in $variable" il vaudrait mieux changer de nom pour ne pas avoir 2 nom de variable identique
- etc.
Dernier point : Retire ton mail de tes posts merci.
- affiche le contenu de ton fichier "toto.txt"
- précise si tu veux rechercher qu'un mot ou une chaîne précise ou encore une ligne ou autre...
- affiche le contenu du répertoire que tu veux lister
- à la place de "for variable in $variable" il vaudrait mieux changer de nom pour ne pas avoir 2 nom de variable identique
- etc.
Dernier point : Retire ton mail de tes posts merci.
d'accord pour plus de précision ;-)
- Dans un fichier "toto.txt", a la première ligne il y a une chaine de caractère, une phrase, exemple :
"je m'appel toto"
- Je souhaiterais dans un "bash" dire :
Si dans le fichier "toto.txt" dans la première ligne il est écrit "je m'appel toto" alors envoyer un mail
Si dans le fichier "toto.txt" dans la première ligne il n'est pas écrit "je m'appel toto" alors ne rien faire
merci
- Dans un fichier "toto.txt", a la première ligne il y a une chaine de caractère, une phrase, exemple :
"je m'appel toto"
- Je souhaiterais dans un "bash" dire :
Si dans le fichier "toto.txt" dans la première ligne il est écrit "je m'appel toto" alors envoyer un mail
Si dans le fichier "toto.txt" dans la première ligne il n'est pas écrit "je m'appel toto" alors ne rien faire
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il y a sûrement d'autres façons de faire, en voilà une :
[tmpfs]$ cat toto.txt je m'appelle toto je m'appelle tutu je m'appelle titi [tmpfs]$ cat origan31.sh #! /bin/bash # set -xv head -1 "$1" | grep "$2" >/dev/null if [ "$?" == 0 ] then echo "La 1ère ligne contient bien : $2" else echo "La 1ère ligne ne contient pas : $2" fi [tmpfs]$ ./origan31.sh toto.txt "je m'appelle toto" La 1ère ligne contient bien : je m'appelle toto [tmpfs]$ ./origan31.sh toto.txt "je m'appelle momo" La 1ère ligne ne contient pas : je m'appelle momo [tmpfs]$;-))
merci beaucoup Jipicy pour cette réponse,
j'obtient bien un résultat, j'ai juste un second probleme :
- Dans le fichier "toto.txt", a la première ligne j'aurais une phrase du type :
"la température est de 25 degrés celcius"
- Dans ce "bash", je souhaiterais dire :
Si dans le fichier "toto.txt" je trouve une valeur du chiffre supérieur a 25 alors
j'envoi un mail.
est-ce que c'est possible?
merci de l'aide,
j'obtient bien un résultat, j'ai juste un second probleme :
- Dans le fichier "toto.txt", a la première ligne j'aurais une phrase du type :
"la température est de 25 degrés celcius"
- Dans ce "bash", je souhaiterais dire :
Si dans le fichier "toto.txt" je trouve une valeur du chiffre supérieur a 25 alors
j'envoi un mail.
est-ce que c'est possible?
merci de l'aide,
[tmpfs]$ cat toto.txt
la température est de 28 degrés celcius
je m'appelle toto
je m'appelle tutu
je m'appelle titi
[tmpfs]$ cat origan31.sh
#! /bin/bash
# set -xv
temp=$(head -1 $1 | egrep -o "[0-9]{2}")
if [ "$temp" -gt 25 ]
then
echo "Attention la température excède les 25° !!! "
fi
[tmpfs]$ ./origan31.sh toto.txt
Attention la température excède les 25° !!!
[tmpfs]$ ;-))
merci beaucoup !! ca marche presque (je me débrouillerais ensuite pour envoyer le résultat par mail)
J'ai juste un probleme, une erreur quand je lance le bash,
En fait la phrase qu'il y a dans "toto.txt" est :
SNMPv2-SMI::enterprises.9.9.13.1.3.1.3.1 = Gauge32: 26
et c'est le dernier chiffre "26" qui est la température, tout le reste ne change jamais.
j'ai l'erreur:
./origan31.sh: line 7: [: 13
32
26: integer expression expected
merci beaucoup pour votre aide ,
J'ai juste un probleme, une erreur quand je lance le bash,
En fait la phrase qu'il y a dans "toto.txt" est :
SNMPv2-SMI::enterprises.9.9.13.1.3.1.3.1 = Gauge32: 26
et c'est le dernier chiffre "26" qui est la température, tout le reste ne change jamais.
j'ai l'erreur:
./origan31.sh: line 7: [: 13
32
26: integer expression expected
merci beaucoup pour votre aide ,
Change la ligne :
temp=$(head -1 $1 | egrep -o "[0-9]{2}")par celle là :temp=$(head -1 $1 | egrep -o "([0-9]{2})$")et ça devrait rouler ;-))
super merci Jipicy ! ca marche ;-)
un dernier probleme aprés je t'embete plus !
je voudrais envoyer un mail au lieu de "echo",
j'ai écris pour le mail
#!/bin/sh
# set -xv
temp=$(head -1 $1 | egrep -o "([0-9]{2})$")
if [ "$temp" -gt 20 ]
then
mail climbing31@gmail.com -s "Attention la temperature excede 25 degres !!!"
fi
(sendmail est configué sur la machine)
Merci,
un dernier probleme aprés je t'embete plus !
je voudrais envoyer un mail au lieu de "echo",
j'ai écris pour le mail
#!/bin/sh
# set -xv
temp=$(head -1 $1 | egrep -o "([0-9]{2})$")
if [ "$temp" -gt 20 ]
then
mail climbing31@gmail.com -s "Attention la temperature excede 25 degres !!!"
fi
(sendmail est configué sur la machine)
Merci,