我使用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
答案 0 :(得分:2)
远程计算机有旧版本的bash。您必须通过在脚本中添加以下行来启用扩展模式:
shopt -s extglob
答案 1 :(得分: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