Script bash

Script bash - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 03-06-2006 à 01:58:42    

kikou tout le monde
 
petite question
 
comment puis je enchainé 2 actions ... car la il me lance la premiere action mais enchaine pas sur la 2 eme ....
 
#!/bin/bash
./test.exe &&
./taskkill /im test.exe
echo -n "mise à jour terminé..."
fi
 
merci d avance ...

Reply

Marsh Posté le 03-06-2006 à 01:58:42   

Reply

Marsh Posté le 03-06-2006 à 02:15:37    

J ai trouvé .....
 
./test.exe & ./sleep 2; ./taskkill /im test.exe
 
pour info....
 
 
sinon j ai une autre question .....
 
je voudrais creer un historique ...
 
j ai deja  
 
./cmp test.txt test.txt.old
 
je voudrais que si le fichier est different il prenne la premiere ligne du fichier test.txt et qu il rajoute la ligne au fichier historique.txt ....  
 
possible a faire .?
 

Reply

Marsh Posté le 03-06-2006 à 12:03:57    

avec cat test.txt | grep -m1 expr >> historique.txt
 
Si expr est une expression régulière qui figure dans la première ligne de test.txt, il va copier la ligne à la fin de historique.txt... c'est pas tout à fait ce que tu veux, mais je n'en connais pas beaucoup en bash, désolé :)

Reply

Marsh Posté le 03-06-2006 à 12:36:23    

kruso a écrit :

avec cat test.txt | grep -m1 expr >> historique.txt
 
Si expr est une expression régulière qui figure dans la première ligne de test.txt, il va copier la ligne à la fin de historique.txt... c'est pas tout à fait ce que tu veux, mais je n'en connais pas beaucoup en bash, désolé :)


 
pas besoin de cat ici ;) :

grep -m1 expr test.txt >> historique.txt


 
 
sinon, pour la réponse à la question, un diff (pour comparer les modifications, si tu veux juste regarder les dates de modifs ou autres, tu peux utiliser test) suivi d'un head -n1 test.txt >> historique.txt si nécessaire


Message édité par Mjules le 03-06-2006 à 12:38:23

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 03-06-2006 à 14:08:44    

Merci pour vos reponses ...
 
mais quand j utilise  
 
grep -m1 expr test.txt >> historique.txt
 
j ai aucune erreur dans le script ... mais il me creer un fichier de 0 octet pour le fichier historique.txt .....

Reply

Marsh Posté le 03-06-2006 à 14:10:17    

expr est bien sur la première ligne de test.txt ?
 
si il n'y est pas, c'est normal que grep ne trouve rien


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 03-06-2006 à 15:04:30    

ok c est bon j avais pas compri l utilisation de expr ...
 
c est on ca fonctionne nikel ..... derniere chose .... puis je mettre une date et heure a la ligne k il rajoute

Reply

Marsh Posté le 03-06-2006 à 23:40:26    

personne qui sait rajouter une date en script bash .?

Reply

Marsh Posté le 04-06-2006 à 00:30:37    

y a t il une commande genre ./grep "date" test test.txt historique.txt ...
 
je trouve pas comment rajouter la date dans le fichier historique en meme temps ...

Reply

Marsh Posté le 04-06-2006 à 11:45:26    

man date; tout est expliqué dedans.
 
et si tu veux seulement la première ligne, il y a mieux que grep (head par ex)


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 04-06-2006 à 11:45:26   

Reply

Marsh Posté le 04-06-2006 à 13:34:37    

Merci pour ton aide .... mais kan j utilise ./date >> historique.txt ca me rajoute une ligne avec la date ....
 
moo je voudrais ne pas rajouter de ligne mais plutot rajouter la date a la fin de la derniere ligne de historique.txt
 
je recherche sur le forum mais apparement une telle commande se fait pas avec ./date ou ./grep
 
Merci d avance ... si vous avez une solution ;)

Reply

Marsh Posté le 04-06-2006 à 13:53:13    

franchement, documente toi sur le shell, les expressions régullère, les outils et la façon de les employer, là tu teste au petit bonheur la chance et tu n'obtiendras que très difficilement des résultats.
 
tu as plusieurs sites qui parlent de ce sujet dans le topic des liens.
 
en substance, j'essaierais un truc comme ça (on suppose que tu crées un fichier test.old en début de ton programme par copie de test.txt) :
 

Code :
  1. TETE=`head -n1 test.txt`
  2. MAINTENANT=`date +"%F %r"`
  3. diff test.txt test.old > /dev/null
  4. if [ $? -gt 0 ];
  5.   then
  6.      echo  $TETE $MAINTENANT >> historique.txt
  7.   else
  8.      exit 0
  9. fi


 
(ce code doit marcher mais il est à adapter en fonction de tes vrais besoins)


Message édité par Mjules le 04-06-2006 à 13:53:58

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 04-06-2006 à 14:28:16    

j ai bien fais ce que tu as dis ...
voila mon fichier test.sh
 
#!/bin/bash
TETE="head -n7 clefdujour.txt"
MAINTENANT="date"
echo  $TETE $MAINTENANT >> historique.txt
 
mais dans le fichier historique j obitient la ligne
 
head -n7 test.txt date
 
je repete que je n utilise pas linux ... je suis sous windows et que je lance un fichier .sh  
 
avec la comande bash test.sh
 
deja si je met ton script exact il me dis que la commande tete et maintenant sons introuvable .... mais si je met " au lieu de ` ca fonctionne mais il me met pas la date ....

Reply

Marsh Posté le 04-06-2006 à 14:38:01    

Thomas_59 a écrit :

j ai bien fais ce que tu as dis ...
voila mon fichier test.sh
 
#!/bin/bash
TETE="head -n7 clefdujour.txt"
MAINTENANT="date"
echo  $TETE $MAINTENANT >> historique.txt
 
mais dans le fichier historique j obitient la ligne
 
head -n7 test.txt date
 
je repete que je n utilise pas linux ... je suis sous windows et que je lance un fichier .sh  
 
tu ne l'as jamais précisé dans tes messages initiaux... forcément, sous windows, ça marche différemment (d'ailleurs, tu utilises cygwin ?) pourquoi tu n'utilises pas carrément l'interpréteur DOS/windows ?
 
avec la comande bash test.sh
 
deja si je met ton script exact il me dis que la commande tete et maintenant sons introuvable .... mais si je met " au lieu de ` ca fonctionne mais il me met pas la date ....


 
documente toi et n'essaye pas de faire tout à l'aveuglette.


Message édité par Mjules le 04-06-2006 à 14:38:54

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 04-06-2006 à 14:52:33    

j ai fais un script automatique qui marche tres bien ....
 
mais avec la comande bash ....
 
a la limite si rajouter une dat ou heure c est pas possible tant pis .....
 
mais ca m aiderais , car la j ai des ligne sans date ... assez chiant pour retracer les evenements .... ;)
 
mais bon si c est pas possible  je me contenterais de mon tit script ....
 
Merci bcp pour ton aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed