Erreur de script 'expr'

Bonsoir à tous,

J’ai un message d’erreur de ce type pour un script

expr: erreur de syntaxe [: 35: -eq: unexpected operator head: : nombre de lignes non valide feh WARNING: /home/genpashiro/picts/ - Directory specified for image filename feh ERROR: Couldn't load image in order to set bg

Ce script me permet d’afficher aléatoirement une image de fond en utlisant feh sur dwm.

Auparavant (avant une réinstall’), celui ci fonctionnait très bien…

Voici le script entier

[code]#!/bin/sh
if [ -d ${HOME}/picts ] ; then
cd ${HOME}/picts/
_fics=ls | grep -E "*.(png|jpg)" | wc -l

if [ ${_fics} -gt 0 ] ; then
_ps=ps aux
_pid=echo "${_ps}" | grep $0 | tr -s [:space:] | cut -d' ' -f2
_lines=echo "${_pid}" | wc -w

if [ ${_lines} -gt 1 ]; then
_pid=echo ${_pid} | cut -d' ' -f1
echo "Un script en trop, on le kill (pid: ${_pid})"
kill ${_pid}
fi

while true; do

_nombre=$RANDOM
_nombre=expr ${_nombre} % ${_fics}
if [ ${_nombre} -eq 0 ] ; then
_nombre=1
fi
_image=ls | grep -E "*.(png|jpg)" | head --lines=${_nombre} | tail -1

feh --bg-scale "${HOME}/picts/${_image}"
sleep 900
_fics=ls | grep -E "*.(png|jpg)" | wc -l
done &
else
echo "Veuillez placer des fichiers images dans le répertoire ${HOME}/picts !"
fi
else
echo "Veuillez créer le répertoire ${HOME}/picts y placer vos fonds d’écran !"
fi[/code]

bonjour

remplace #!/bin/sh par #!/bin/bash

Cela ne change rien pour moi :017

Pas d’amateurs en sus??

Bonjour,

Rajoute ceci juste en dessous de #!/bin/sh

Et redonne la log console de ton script lorsque tu le relance car là on ne vois pas trop d’erreur.

Ta ligne là est inutile : _nombre=$RANDOM si tu remplace la suivante par

@+

[code]+ true

  • expr % 67
    expr: erreur de syntaxe
  • _nombre=
  • [ -eq 0 ]
    [: 1: -eq: unexpected operator
  • head --lines=
    head: : nombre de lignes non valide
  • tail -1
  • grep -E *.(png|jpg)
  • ls
  • _image=
  • feh --bg-scale /home/genpashiro/picts/
    feh WARNING: /home/genpashiro/picts/ - Directory specified for image filename
    feh ERROR: Couldn’t load image in order to set bg
  • sleep 900[/code]

Apparemment un problème de syntaxe avec “expr”, pourtant ce script fonctionnait avant la réinstallation

La proposition de limax est la bonne

J’ai mis en #!/bin/bash ainsi que les autres scripts qui se lancent au démarrage de X.

Par contre, je suis un peu déçus par sh, je le pensais plus “costaud” que bash…

Comment cela peut s’expliquer??