2017-06-02 83 views
1

我在我的bash脚本中收到一个错误,我没有看到任何错误。这是给我错误的代码。Bash脚本错误:第167行:意外标记附近的语法错误'然后'

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 
+0

也许错误是在一些前行? – airos

+2

大概回车。 – 123

+1

我猜想这是一个嵌套的if/then,我们需要看到前面的代码行。 – SaintHax

回答

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 

:)
戴尔

相关问题