Script qui ne fonctionne plus ...

Le
Olivier V
Bonjour,

Il y a quelques mois, Ph. Ivaldi m'avait fourni un script permettant de
déterminer si un fichier donné contient les chaînes de
caractères "begin{pspicture}" ou "includegraphics{.eps}".

Le voici :

#!/bin/sh
if sed -r 's/([^]|^)%.*//g' "$1" |
awk -v FS="^Z" "/\begin{document}/,/\end{document}/" |
grep -Eq "(^ *\begin{pspicture})|(\includegraphics{.*.eps})"; then
touch /tmp/contientpspicture
echo "oui pstpdf "
else # on teste l'existence avant de supprimer
[[ -e /tmp/contientpspicture ]] && rm -f /tmp/contientpspicture
echo "non pas pstpdf "
fi

Mais bizarrement, suite à une mise à jour sur un portable (Kubuntu 6.06),
j'obtiens l'erreur suivante, alors qu'il fonctionnait très bien avant :

$ contient_pstpdf essai.tex
/home/meloli/bin/latex/contient_pstpdf: 11: [[: not found
non pas pstpdf

Le problème semble donc venir de [[ -e /tmp/contientpspicture ]]
qui, si ma mémoire est bonne, est censé tester la présence du fichier avant
de le supprimer.

Au pire, je supprimerai cette partie, mais malgré tout
quelqu'un peut-il résoudre ce problème ?

Merci.

Olivier V
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Luc.Habert.00__arjf
Le #1903597
Olivier V :

$ contient_pstpdf essai.tex
/home/meloli/bin/latex/contient_pstpdf: 11: [[: not found
non pas pstpdf


Remplace ce « [[ » par « [ » et le « ]] » fermant par « ] ». Ou alors,
remplace la première ligne par « #!/bin/bash ». Le « [[ ... ]] » est une
construction de bash et non du sh standard. Ça marchait avant, probablement
parce que /bin/sh était un symlink pointant vers bash. Avec l'upgrade, c'est
peut-être devenu un symlink pointant vers dash, ou alors, le mode sh de bash
est devenu plus strict qu'avant avec la nouvelle version.

Olivier V
Le #1903564

Remplace ce « [[ » par « [ » et le « ]] » fermant par « ] ». Ou alors,
remplace la première ligne par « #!/bin/bash ». Le « [[ ... ]] » est une
construction de bash et non du sh standard.


C'était ça. Merci.

Olivier V

Publicité
Poster une réponse
Anonyme