j’ai un petit souscis, je dois effectuer ou non une opération en fonction du nombre de fichiers dans un répertoire mais je n’arrive pas à tester le retour de la commande `ls | wc -w`
Exemple
dtstamp=`date '+%Y%m%d'`
numfile=`ls | wc -w`
if $numfile != 2
then
echo 'Number of files incorrect'
else
diff $2 $3 | grep '>' | sed 's/^> //g' > $1
if test -d archive
then
mv $2 archive/${dtstamp}-$2
mv $3 ${3}.old
fi
fi
Y’a un truc qui cloche mais je sais pas quoi, j’ai essayé
if $numfile -NE 2
et aussi
if $numfile != '2'
Mais rien ne fonctionne je passe systématiquement dans le ‘else’.
numfile=`ls | wc -w` met le résultat de la commande dans la variable en tant que chaine de caractère et pas entier.
sinon pour le $?, c’est pas dit que tu ais la valeur attendu dedans, cela dépends de ce que retourne wc, soit le même résultat qu’affiché, soit simplement 0 ou une valeur différente en cas d’erreur.
je sais je sais, je ne fait que donner des problèmes et pas des solutions…