在第 11 行 Bash“意外的文件结尾”,没有第 11 行

Met*_*tNL 1 bash

我正在我的 Lubuntu 系统上尝试一个新的 conky 主题,为了运行它,我需要启动一个 bash 脚本:

#!/bin/bash
#sleep 18&&
conky -c /home/mathijs/conky/conky1&&
sleep 1&&
conky -c /home/mathijs/conky/conky2&&
sleep 1&&
conky -c /home/mathijs/conky/conky3&&
sleep 1&&
conky -c /home/mathijs/conky/conkyxx&&
sleep 1&&
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,终端给了我这个错误:

./start.sh: line 11: syntaxerror: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

然而在脚本中只有 10 行。我手工重写了它,并再次检查,但得到了同样的错误。我错过了什么?

hee*_*ayl 8

shell 元字符&&期待之后的命令,如果第一个命令成功,它将运行。

这就是您收到错误消息的原因。

例如你sleep 1&&在第 10 行,现在 shell 将运行sleep 1,然后如果它成功(退出代码 0)那么 ( &&) 将运行下一个命令,这不是你提供的。所以你会收到一条unexpected end of file错误信息。

此外,我认为您打算使用&而不是&&.

&将前台进程带到后台,这样你就可以在前台做一些其他的事情。此外,这可能不是一个好主意sleep命令(尽管取决于用例),因为sleep打算暂停脚本或终端中命令的执行一段提到的时间,如果您通过添加&例如sleep 1&下一个将其带到后台命令将立即运行,因为在这种情况下执行顺序不会同步。