Bash: Comment faire une extension variable dans une expression arithmétique?

Tout en essayant d'écrire un simple script bash pour aider
avec mon processus de déploiement, j'ai couru à une erreur déroutant:

#!/bin/bash
WEEKDAY=$(date +'%u')
echo $WEEKDAY
DAYS_TO_WEDNESDAY=$((3-$WEEKDAY))
echo $DAYS_TO_WEDNESDAY

Résultats dans:

1
")syntax error: invalid arithmetic operator (error token is "

Le plus étrange c'est que je pourrais jurer que ce
très script a fonctionné parfaitement bien il y a quelques jours.

EDITION (14:58):

Le problème n'était pas le script bash, mais avec l'utilisation de SVN via TortoiseSVN. Le détour par Windows changé EOL marqueurs "CR LF", ce qui entraîne des erreurs de syntaxe de bash. Configuration svn:eol-style -propriété permet d'éviter d'autres problèmes semblables.

Ce script fonctionne sans erreurs ici (et je copie/collé de votre question): $ SEMAINE=$(date +'%u',) $ echo $jour de la SEMAINE 1 $ DAYS_TO_WEDNESDAY=$((3-$la SEMAINE)) $ echo $DAYS_TO_WEDNESDAY 2
Je reçois presque exactement la même erreur si la SEMAINE n'est pas défini lorsque j'ai frappé à la DAYS_TO_WEDNESDAY de calcul: -bash: 3-: erreur de syntaxe: opérande attendue (jeton d'erreur est "-")

OriginalL'auteur Jukka Dahlbom | 2009-03-23