1

我正在使用 SSH Secure Shell 连接到 Linux 机器......当我尝试运行我的脚本时,我不断收到这些错误......

[grt@vm]MODE  : D
DATE  : 200806
bash: line 94: syntax error in conditional expression: unexpected token `('
bash: line 94: syntax error near `+(['
bash: line 94: `        if [ ${#Date} -ne 6 ] || [[ "$Date" != +([0-9]) ]] '

我的命令:

ssh grt@$10.*.*.*  'bash -s' < purge.sh $1 $2

我有这个错误的几行代码......:

Date="$2"
if [ ${#Date} -ne 6 ] || [[ "$Date" != +([0-9]) ]] 
then 
        echo "Erreur  : $2 - Format date incorrect"
        echo "Usage   : AAAAMM - date composée de 6 chiffres (4 pour l'année et 2 pour le mois)"
        echo "Exemple : $0 D 200806"
        exit 3
fi

bash: line 118: syntax error in conditional expression: unexpected token `('
bash: line 118: syntax error near `+(['
bash: line 118: `       if [[ "$NbMois" != +([0-9]) ]] || [ "$NbMois" -lt 0 ] || [ "$NbMois" -gt 99 ]'

我有这个错误的几行代码......:

NbMois="$2"
if [[ "$NbMois" != +([0-9]) ]] || [ "$NbMois" -lt 0 ] || [ "$NbMois" -gt 99 ]
then
    echo "Erreur  : $2 - Nombre de mois incorrect"
    echo "Usage   : Entier numérique compris entre 0 et 99"
    echo "Exemple : $0 N 14"
    exit 3
fi
4

2 回答 2

2

远程机器有旧版本的 bash。您必须通过在脚本中添加以下行来启用扩展模式:

shopt -s extglob
于 2013-07-11T14:19:59.077 回答
0

bash 中的 reqex 运算符是=~.

Date="$2"
if [[ ! "$D" =~ ^[0-9]{6}$ ]];then
then 
    echo "Erreur  : $2 - Format date incorrect"
    echo "Usage   : AAAAMM - date composée de 6 chiffres (4 pour l'année et 2 pour le mois)"
    echo "Exemple : $0 D 200806"
    exit 3
fi
于 2013-07-11T14:21:36.093 回答