Salut,
Plusieurs choses déjà...
Pour savoir d'où vient l'erreur dans ton script, il faut le déboguer. Donc rajoute "set -xv" en début de script pour un affichage verbeux, plus facile de déterminer la syntaxe qui foire.
Concernant "opérateur unaire attendu " c'est quand bash attend un opérateur de comparaison sur des nombres (-eq, -ne, -lt, -le, -gt, -ge) et non sur des fichiers ( -z, -n, =, != ).
Ensuite, tu t'embêtes pour rien ;-\
Pour :
CURRENTDATE=`date | cut -d ' ' -f1`
Préférer :
CURRENTDATE=$(date '+%a')
Là, je n'ai pas compris ce que tu voudrais faire !?
SEMAINE=$[((`date | cut -d ' ' -f2`-1)/7)+1]
dans la mesure où "date | cut -d ' ' -f2" retourne l'abréviation du mois en cours (au passage "$(date '+%b')" est préférable), et que par conséquent les opérateurs arithmétiques n'auront pas d'effet ;-((
Pour :
if [ `find -name backup.log` != ' ' ]; then
Préférer :
if [ -e backup.log ]; then ...
Là, c'est faut dans la mesure où "$CURRENTDATE" contient selon la syntaxe (enfin chez moi) "ven" (abréviation du jour de la semaine) et non "vendredi" :
if [ $CURRENTDATE != "vendredi" ];then
Bon, corrige déjà ça, ajoute "set -xv" à ton script, et reviens nous donner des nouvelles ;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.