linux - 为什么在 bash 脚本中查找匹配的 `"' 错误时会出现语法错误和意外的 EOF?

标签 linux bash shell syntax echo

case in $angreifenQ
    j) enemieHealth=$(( $enemieHealth - $weaponDamage ));;
    n) echo "Du bist ein Franzose"
       echo "Warum spielst du eigentlich das Spiel?";; 
esac

if $(( $enemieHealth <= 0 )); then
        echo "Der Gegner ist gestorben!"
elif $(( $enemieHealth > 0 )); then
        echo "Der Gegner hat noch ${enemieHealth} Leben!"
fi

为什么我会收到这些错误?

./anfang.sh: line 125: unexpected EOF while looking for matching `"'
./anfang.sh: line 127: syntax error: unexpected end of file

最佳答案

您提供的代码存在几个问题,首先是 @SLePort 首次提到的 in 关键字的位置错误。您提供的代码没有解释 bash 没有向您报告这些错误消息,您报告的错误消息也没有实际看到。

另一方面,您收到的错误消息是您报告的错误消息,而不是我期望从您的代码中获得的错误消息,这与您所提供的内容之前的某处存在不匹配的 " 字符一致,正如您的第一条消息所描述的那样。事实上,我可以通过在您提供的代码前加上 " 前缀来获取您的消息。

然而,比杂散的 " 本身更有可能的是您省略了尾随 " 的带引号字符串。从您提供的代码中向后看,可以找到这样的东西。如果您有一个支持 shell 脚本语法着色的文本编辑器,那么这可能有助于加快您的搜索速度。

关于linux - 为什么在 bash 脚本中查找匹配的 `"' 错误时会出现语法错误和意外的 EOF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680639/

相关文章:

linux - 如何检查/init是否启动/etc/inittab

bash - 错误使用反引号执行?

bash - 将 stderr 重定向到使用进程替换创建的子 shell 时出现问题

linux - 空间作为从 bash 编程的参数

bash - Shell:捕获变量中的输出文件

linux - 自动完成和历史浏览如何在远程 shell (SSH) 中工作

java - 在Linux上下载Java jdk

c - 子进程如何从管道读取stdout,而父进程如何将stdin写入管道?

c - 非规范和非回声模式不适用于管道

bash - 你如何从 'find' 中获取结果?