解决了 Linux 外壳脚本中的“syntax error: unexpected end of File”
Advertisements
在本文中,我们将了解如何解决 Linux Shell 脚本中的“语法错误:文件意外结尾”。昨晚,当我在处理一个简单的 shell 脚本来计算两个数字的总和时,我注意到运行脚本时出现一个完全出乎意料的错误。然后我意识到虽然错误是直截了当的,但它是如此普遍,任何人都可以愿意或不情愿地做这个错误。然后,在我决定写一篇关于此的简短文章之后,解释了可能导致意外文件结束错误的不同情况。
解决了 Linux 外壳脚本中的“syntax error: unexpected end of File”
我正在使用的简单 shell 脚本如下所示。在这里,我正在计算和值的总和并将其存储在变量中。然后最后显示输出,如下所示。abcecho $c
cyberithub@ubuntu:~$ nano calculate
#! /bin/bash
a=5
b=7
sum()
{
c=$(($a+$b))
echo $c
}
sum()
当我尝试运行上面的脚本时,它给了我下面的错误输出。
cyberithub@ubuntu:~$ ./calculate
./calculate: line 13: syntax error: unexpected end of file
虽然由于多种原因可能会遇到意外的文件结束错误,但大多数情况下是由于括号或大括号未正确打开或关闭。基本上,文件错误的意外结束意味着您正在尝试打开从未像大括号一样关闭的东西。如果需要了解有关错误的更多信息,请使用 。此处开关用于调试目的。当您有一个较长的脚本并且根本不容易找到错误时,这更有用。bash -x <script_name>-x
由于在我们的例子中,这是一个非常小的脚本,因此我们可以轻松识别错误。因此,如果您看到输出,它说错误是下面突出显示的行。line 13
cyberithub@ubuntu:~$ nano calculate
#! /bin/bash
a=5
b=7
sum()
{
c = $(($a+$b))
echo $c
}
sum()
您现在可能已经确定了错误。在 中,左括号和右括号已用于调用不正确的 sum 函数。因此,如果您删除如下所示的左括号和右括号,然后尝试运行脚本,那么您可以看到 sum 函数正常工作。line 13
Advertisements
cyberithub@ubuntu:~$ nano calculate
#! /bin/bash
a=5
b=7
sum()
{
c=$(($a+$b))
echo $c
}
sum
输出
cyberithub@ubuntu:~$ ./calculate
12
当您打开大括号但忘记关闭它时,您可能会遇到另一种情况,如以下示例所示,您在下面突出显示了大括号,但忘记或错过了关闭它。在这种情况下,当您尝试运行脚本时也会遇到错误。因此,您需要小心关闭牙套。line 12unexpected end of file
cyberithub@ubuntu:~$ nano calculate
#! /bin/bash
a=5
b=7
sum()
{
c=$(($a+$b))
echo $c
sum
输出
cyberithub@ubuntu:~$ ./calculate
./calculate: line 12: syntax error: unexpected end of file
希望上面的解释有意义,如果您也遇到意外的文件结束错误,可以帮助您解决错误。请在评论框中让我知道您的反馈!!