Bash脚本错误:第167行:意外令牌附近的语法错误'然后'

时间:2017-06-02 13:43:49

标签: bash macos

我在bash脚本中收到错误,但我发现它没有任何问题。这是给我错误的代码。

if [ "$password" = "na" ]; then  
   log "Password not set"  
   usage  
   exit 1  
fi

有人可以看到这个有什么问题吗?对我来说看起来很好,但我也很喜欢bash。

编辑:以下是以前的代码行,也许会有所帮助。

if [ "$SITE" = "unknown" ]; then
    log "Site not set"
    usage
    exit 1
fi

if [ "$VERSION" = "na" ]; then
    log "Version not set"
    usage
    exit 1
fi

if [ "$password" = "na" ]; then  
   log "Password not set"  
   usage  
   exit 1  
fi

1 个答案:

答案 0 :(得分:0)

您的示例对我来说没有错误。我猜你的文件可能包含“隐藏”字样。字符(很可能是' \ r' - 回车 - 但可能是别的东西)。使用本机Vi / Vim系列编辑器来避免这种情况;否则,请检查文本编辑器中的设置并设置您的行结尾'到Unix / OSX。试试这个:

tr -d '\r' /path/your_file.sh > /path/your_file.mod.sh  

bash -n /path/your_file.sh      ## should show error
bash -n /path/your_file.mod.sh  ## no errors

:)
戴尔