1

je sais, c'est tout con, mais j'y connais rien en bash


#!/bin/sh
rm cookies.txt
wget --save-cookies cookies.txt --post-data "login=flanker&mdp=XXXXXXXXXXX&cookme=checked" http://www.yaronet.com/login.php
rm login.php
wget --load-cookies cookies.txt  http://www.yaronet/com/dposts.php
if [`grep -c "Vous avez un nouveau mini-message" dposts.php` ]
then
growlnotify --appIcon Safari -m 'Vous avez un nouveau minimessage'
fi


j'ai vérifié en ligne de commande, le grep renvoie bien 0 quand il n'y a pas de minimessage, mais le growlnotify est quand même appelé trifus
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

2

je peux pas tester là bicause pas d'unix, mais tu veux tester quoi, la valeur de retour de grep ?
dans ce cas ça serait plutot :

grep -c "Vous avez un nouveau mini-message" dposts.php > /dev/null 2> /dev/null
if [ $? -ne 0 ]
then


(je ne sais plus ce que retourne grep en cas d'échec, si ça se trouve ton truc devrait marcher aussi, essaie de protéger ton expression en `` sinon ça risque de merder à l'évaluation à cause du field splitting)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

$? -ne 0 plutôt , non ?

grep -c renvoie 1 ou plus si "vous avez un nouveau mini-message" est dans le texte, 0 sinon, et ton truc ne marche pas plus sad
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

4

(oui $?, y'a eu cross edit furtif grin)

sinon je viens de vérifier, grep -c ne "renvoie" pas 0 ou 1, il l'écrit sur stdout, donc effectivement mon truc ne risque pas de marcher et le tien non plus ^^
essaie ça à tout hasard :

num=`grep -c "Vous avez un nouveau mini-message" dposts.php 2> /dev/null`
if [ "$num" -gt 0 ]
then
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

merci !!!!!! ça marche top
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

6

Quelle est la signification des guillemets autour de $num ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

7

num=`grep -c "Vous avez un nouveau mini-message" dposts.php 2> /dev/null` 
if [ "$num" -gt 0 ] 
then

Tu t'embètes pour rien là. Si tu n'utilises pas la valeur de $num par la suite, tu peux faire directement
if grep "Vous avez un nouveau mini-message" dposts.php >/dev/null 2>&1
then

(grep renvoie 0 s'il trouve au moins une occurence, une autre valeur sinon)


Sasume> ça évite que la variable soit découpée.
Par exemple :
names=un fichier avec des espaces.bin
rm -f $names        # est interpreté comme    rm -f un fichier avec des espaces.bin
rm -f "$names"      # est interpreté comme    rm -f "un fichier avec des espaces.bin"

Le premier rm foire évidemment...il va essayer de supprimer le fichier "un", le fichier "fichier", le fichier "avec"....

8

c'est quoi l'intérêt de ne pas mettre de " " alors ?
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

9

le script complet
#!/bin/sh
cd /Users/flanker/.GrowlyAronet
if [ -f cookies.txt ]
then
touch cookies.txt
else
wget --save-cookies cookies.txt --post-data "login=flanker&mdp=XXXXXXXXXXXXX&cookme=checked" http://www.yaronet.com/login.php
rm login.php
fi
wget --load-cookies cookies.txt  http://www.yaronet.com/dposts.php
if grep "Vous avez un nouveau mini-message" dposts.php 2> /dev/null
then
if [ -f mmsg.php ]
then
touch mmsg.php
else
growlnotify --appIcon Safari -m 'Vous avez un nouveau minimessage'
touch mmsg.php
fi
else
rm mmsg.php
fi
rm dposts.php

c'est tout moche, je sais, mais ça marche ^^
par contre, pas moyen de l'exécuter avec cron sad
dans crontab -e, j'ai
 * * * * *      sh /Users/flanker/.GrowlyAronet/mmsg.sh

et ça ne fait rien sad

(oui, je sais, je ne connais pas le contraire de -f )
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

10

Dans ce cas là....aucun, c'est pour ça qu'ils y sont.
Mais par exemple

CFLAGS=-g -02 -W -Wall
gcc $CFLAGS  truc.c -o truc
gcc "$CFLAGS"  truc.c -o truc

Le premier marche très bien, mais pas le second : le second appel à gcc va voir une seule option "-g -02 -W -Wall" qu'il ne va pas reconnaître.

11

ah ok, merci
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

12

Flanker > t'es sûr que ton démon cron est lancé ? cheeky
avatar

13

je me suis posé la question, mais j'ai lu qqe part que par défaut il l'était sur OS X, après, ptêt que c'est faux. Et comme de toute façon, il ne veut pas se lancer tout seul (cron renvoie une erreur), je me suis dit qu'il devait l'être
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

14

le script complet, qui marche !
#!/bin/sh
cd /Users/flanker/.GrowlyAronet
if [ -f cookies.txt ]
then
touch cookies.txt
else
/sw/bin/wget --save-cookies cookies.txt --post-data "login=flanker&mdp=XXXXXXXXXXXXX&cookme=checked" http://www.yaronet.com/login.php
rm login.php
fi
/sw/bin/wget --load-cookies cookies.txt  http://www.yaronet.com/dposts.php
if grep "Vous avez un nouveau mini-message" dposts.php 2> /dev/null
then
if [ -f mmsg.php ]
then
touch mmsg.php
else
/usr/local/bin/growlnotify --appIcon Safari -m 'Vous avez un nouveau minimessage'
touch mmsg.php
fi
else
rm mmsg.php
fi
rm dposts.php

avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

15

Il me semble qu'il y a une option de wget pour qu'il ne sauvegarde pas ce qu'il télécharge ?

16

Sasume
: Quelle est la signification des guillemets autour de $num ?

Pour un shell supposé respecter la XSI, l'une des dernières étapes est de séparer les champs de chaque expression, en prenant en compte le(s) délimiteur(s) choisi(s) (cf IFS). Par défaut l'espace fait partie de ces délimiteurs, donc toute expression qui comporte des termes séparés par des espaces est découpée en plusieurs expressions, ce qui fait merder "test" (qui est appellé avec if [ blabla ]), bicause comme l'a montré Spectras un seul argument peut se retrouvé découper en plusieurs. C'est pour éviter ce genre de problème qu'on peut rajouter des " " qui empêchent le découpage, même si ici c'était inutile puisque grep n'est pas censé écrire autre chose qu'un nombre.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

17

possible, mais de toute façon, ça ne changerai que pour le login.php qui a priori n'est jamais réutilisé, donc c'est pas trop grave
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

18

Zephyr
:
Sasume
: Quelle est la signification des guillemets autour de $num ?

Pour un shell supposé respecter la XSI, l'une des dernières étapes est de séparer les champs de chaque expression, en prenant en compte le(s) délimiteur(s) choisi(s) (cf IFS). Par défaut l'espace fait partie de ces délimiteurs, donc toute expression qui comporte des termes séparés par des espaces est découpée en plusieurs expressions, ce qui fait merder "test" (qui est appellé avec if [ blabla ]), bicause comme l'a montré Spectras un seul argument peut se retrouvé découper en plusieurs. C'est pour éviter ce genre de problème qu'on peut rajouter des " " qui empêchent le découpage, même si ici c'était inutile puisque grep n'est pas censé écrire autre chose qu'un nombre.

on sent que le 42sh est passe par la grin

19

Plus exactement il est en train de passer par là, j'en ai bouffé de la XSI et c'est pas fini ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

20

note, $(commande) est équivalent = `commande`
je trouve ça plus clair et ça marche mieux avecla plupart des colorations syntaxiques
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

21

c'est pas forcément plus clair je trouve, par contre c'est une écriture bien plus propre puisque non ambiguë contrairement à l'autre (qui oblige à coller des \ partout pour avoir le résultat attendu) ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

22

Oui, et puis cette syntaxe est imbriquable ^^

23

spectras :
Oui, et puis cette syntaxe est imbriquable ^^

la notation à backquotes est imbricable aussi, c'est ce que dit bob je crois:
plop `plop \`plop \\`plop\\` \` `
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

24

Mais imbricable sans échappement (c'est illisible l'échappement).

25

c possible aussi avec des guillemets ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

26

J'y arrive pas, tu peux montrer un exemple ?

27

ah oui non, en fait je raconte n'importe quoi... mais par contre tu peux faire
echo hello hello > hello; cat $(cat $(cat $(cat hello)))
je crois que c'est compatible posix ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

28

Heu oui, c'est pas la même chose que ce qui a déjà été dit ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

29

dehors

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

30

Pour qu'on aille le chercher dehors ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.