si vous avez une solution pour que
var=$(($i-$j))
marche avec sh, pas de problème
. Tout le reste devrait passer.
Edit : le code :
le script récupère une image, son titre et le texte alt, aléatoirement dans la série du webcomic xkcd.
Au départ, pour l’intégrer dans un afficheur de webcomic sur mon bureau, mais celui-ci était moyen au niveau du format, et n’incluait pas de titre : pas mal de blagues passent à la trappe. Bref, j’expérimente avec ce script (c’est le premier que j’écris).
J’en étais au TODO : mettre à jour automatiquement.
Pour celà, je télécharge la page d’accueil (index.html), je fais un grep sur l’accesskey=“p”, qui désigne le précédent, j’en retire les trucs inintéressants, et je réécris le fichier du script avec les nouveautés.
Considérant qu’il est lancé se trouvant dans le répertoire utilisateur, ou que seul le root peut faire l’update si il est dans /usr/bin/. Il faudrait quand même que j’avertisse.
bref, c’est assez simple, mais désolé de ne pas commenter.
[code]#!/bin/bash
script xkcd
TODO : update Automatique du nombre de page ($RANDOM%705+1)
input="/tmp/xkcd.htm"
only=0
nb=705
update=0
remove=1
if test $# -gt 0;
then
while getopts outan opt
do
case $opt in
o)
input=$OPTARG
remove=0
;;
u)
only=1
;;
t)
only=2
;;
a)
only=3
;;
n)
update=1
;;
esac
done
fi
if [ $update -eq “1” ];
then
echo “Updating page count"
wget -O /tmp/up.htm -q http://xkcd.com/
nnb=$(grep “accesskey=“p”>” /tmp/up.htm -m 1 | sed 's/^.* href=”/(.)/" accesskey=.$/\1/'g | bc)
if [ $nnb -ne $nb ]
then
echo "New stuff online, upgrading…"
cat $0 | sed “s/nb=${nb}/nb=${nnb}/g” > $0
diff=$(($nnb-$nb))
echo "Welcome to “$diff” new post !"
else
echo "No new material here, sorry."
fi
rm /tmp/up.htm
exit 0
fi
RAND=$(($RANDOM%$nb))
RAND=$(($RAND+1))
wget -O $input -q http://xkcd.com/${RAND}/
xkcd_count=$(grep "Image URL (for hotlinking/embedding): " $input | wc -m)
xkcd_count=$(($xkcd_count-6))
xkcd=$(grep "Image URL (for hotlinking/embedding): " $input | cut -c 43-$xkcd_count)
xkcd=$(grep $xkcd $input | grep -v “
”)
src="$(echo $xkcd | sed 's/^.* src="(.)" title=.$/\1/'g)“
title=”$(echo $xkcd | sed 's/^.* title="(.)" alt=.$/\1/'g)“
alt=”$(echo $xkcd | sed 's/^.* alt="(.)" .$/\1/'g)"
if [ $remove -ne 0 ]; then rm $input; fi
case $only in
0)
echo "Strip : “$title
echo $alt” : "$src
exit 0
;;
1)
echo $src
exit 0
;;
2)
echo $title
exit 0
;;
3)
echo $alt
exit 0
;;
esac
exit 1[/code]