Script Shell

Fermé
Emy - 18 nov. 2012 à 13:06
 Utilisateur anonyme - 18 nov. 2012 à 16:36
Bonjour,
J'essaye d'écrire un script qui vérifier l'existence d'une information dans un fichier chaque 10 min et sauvegarder le résultat de la recherche dans un fichier journal mais je n'arrive pas a l'exécuter svp ya quelqu'un peut M'aider
voila le script

#!/bin/bash
echo "veuillez saisire le nom de fichier "
read fichier
'find' / -name "$fichier"
if 'find' / -name "$fichier=0"
then
echo "donner le mot a rechercher:"
read mot
'grep' -q "$mot" $fichier

if [[ -n $('grep' "$mot" $fichier)]]
then
echo "le texte est bien present">> fichier_Journal
else
echo "le texte n'est pa la" >> fichier_journal
fi



A voir également:

2 réponses

Bonjour à toi,

Tu crées un fichier .sh
Tu mets ce code dans ce fichier .sh
Tu rajoutes le droit d'exécution à ce fichier
Tu le lances

Création du fichier : touch /home/toto/script.sh
Mettre le code : vi /home/toto/script.sh (ou tout autre éditeur de texte si t'es pas fan du terminal pourtant très pratique) : :wq pour enregistrer et quitter le fichier
Ajouter le droit d'exécution : chmod +x /home/toto/script.sh
Lancer le script : /home/toto/script.sh

Je ne sais pas si c'était ça la question mais c'est ce que j'ai compris.
Hésites pas si tu as d'autres problèmes.

PS : je n'ai pas essayé si le script fonctionnait, pas le temps mais si l'exécution ne fonctionne pas, il te mettra les erreurs avec les lignes qui ne sont pas bonnes (attention ça peut ne pas être la ligne indiquée mais des lignes au dessus car la ligne indiquée dépend de lignes d'au dessus.)
Je sais pas si j'ai été clair mais en me relisant calmement je me comprends^^.
0
Utilisateur anonyme
18 nov. 2012 à 16:36
salut,

un fichier .sh est un fichier qui devrait n'être exécuté qu'avec SH.
un script bash devrait porter l'extension .bash, mais les commandes ne portent pas d'extension.
0
Utilisateur anonyme
18 nov. 2012 à 16:34
salut,

'commande', ça c'est pas bon.
le if 'find' non plus : find ne retourneras pas un code supérieur à zéro, _que_ si la commande comporte des erreurs, et non si elle ne trouve pas de fichier.
if [[ -n 'grep' est inutile : grep mot fichier && echo "trouvé" || echo "pas trouvé"est beaucoup plus simple, et suffit largement.

le nom du fichier est donné, mais pas son chemin, c'est ça ?

tu devrais alimenter un tableau avec une boucle while à laquelle serait connectée la commande find.
0