linux bash:第18行:意外标记'fi'附近的语法错误Q2.sh:第18行:`fi'

时间:2013-05-22 16:45:08

标签: linux bash

我正在尝试编译此代码但是我收到以下错误:

Q2.sh: line 18: syntax error near unexpected token `fi'
Q2.sh: line 18: `fi'

在第15行,我正在尝试验证参数numero是否大于0.感谢任何帮助

由于

#!bin/bash

numero=$1

if test $# -eq 0; then
    echo "Argument Manquants"
    exit 1
fi

if ! [[ "$numero" =~ ^[0-9]+$ ]] ; then
    exec >&2; echo "Le parametre doit etre un digit";
    exit 1
fi

if [ $numero -le 0 ]
$$  echo "Le parametre doit etre plus grand que 0"  
    exit 1
fi

cat /etc/passwd grep "$numero"

3 个答案:

答案 0 :(得分:4)

您忘记了; then条款中的if部分:

if [ "$numero" -le 0 ]; then
    ...
fi

答案 1 :(得分:1)

看起来您错过了then末尾的if声明,而您只使用了单方括号。尝试替换该块:

if [[ $numero -le 0 ]]; then
    echo "Le parametre doit etre plus grand que 0"  
    exit 1
fi

答案 2 :(得分:0)

当我将在Windows上编辑的脚本复制到unix系统时,我遇到了类似的问题。在首次亮相时,我得到了同样的错误。

当我在目标m / c的编辑器中编辑文件一次时,脚本运行没有问题。

对我而言似乎是字符编码问题。但我仍然在寻找解决方案来克服它。

可能有点帮助。

相关问题