Bash 中 Syntax Error Near Unexpected Token 错误
本文演示如何识别和更正由于 Bash 脚本中的不可见字符而导致的意外令牌语法错误。
Bash 中 Syntax Error Near Unexpected Token 错误
有时,语法上看起来完美无缺的 Bash 脚本不起作用。 你会得到一个模糊的语法错误,这也无济于事。
假设您有一些代码,例如:
#!/bin/bash
while :
do
echo "This will repeat every second until you press CTRL + C"
sleep 1
done
从语法上讲,上面的代码是正确的。 但是,一些不可见的字符可能会使代码在 Linux 中在句法上不可读。
我们如何确认是否是不可见字符导致了问题? 我们如何解决这个问题?
如前几节所述,解决方案很简单。
找出问题
假设 filename.sh 是您为 Bash 脚本保存的文件。
打开您的终端,然后导航到文件位置。 然后,在终端中运行以下命令。
cat -v filename.sh
可能表示回车或不间断空格的不可见字符应显示为 ^M、M-BM-
或 M-
。 如果任何其他奇怪的字符进入您的文件,您也应该能够看到它们。
在我们的案例中,我们有几个选项可以解决我们的问题。
使用控制台命令删除 Windows 换行符
如果你有一个名为 filename.sh 的有问题的文件,我们可以使用以下命令将更正后的内容保存到名为 correctedFile.sh 的文件中。
tr -d '\r' < filename.sh > correctedFile.sh
自动将非 UNIX 文件转换为 UNIX 友好格式
为此,您需要一个名为 dos2unix 的实用程序。 如果您使用 apt 作为包管理器,则可以使用以下命令安装 dos2unix:
sudo apt install dos2unix
或者,如果您使用的是基于 arch 的发行版,则可以从 AUR 安装 dos2unix。
要将文件转换为 UNIX 友好格式,请打开终端,然后导航到包含所需文件的文件夹。 我们将考虑一个名为 filename.sh 的文件。
在您的终端中输入以下命令。
dos2unix filename.sh
上面的命令会将您的文件转换为 UNIX 友好的格式。 这样,问题就解决了。
希望您的 Bash 脚本现在可以正常运行。 如果它仍然没有运行,你很可能遇到了实际的语法问题。
相关文章
修复 Bash 中未找到 Mkvirtualenv 命令的错误
发布时间:2023/06/09 浏览次数:102 分类:操作系统
-
本文演示了如何修复 Bash 中的 mkvirtualenv: command not found 错误。修复 bash 中的 mkvirtualenv: command not found 错误 如果你试图在 Python 中创建一个虚拟环境并看到类似这样的东西,
解决在 Bash(或 Cygwin)上找不到 R 命令
发布时间:2023/06/09 浏览次数:84 分类:操作系统
-
本文将帮助您了解错误消息以及如何解决或防止此类错误再次发生。解决bash: '\r': command not found With Notepad++ 不同的操作系统行为不同,Windows 通常是不同的。 如前所述,\r 字符的存在是导致此错
解决 Nodemon Command Not Found
发布时间:2023/06/09 浏览次数:122 分类:操作系统
-
本文将讨论如何解决和处理 nodemon command not found 错误。使用npm解决Nodemon Command Not Found 通过 npm,我们可以安装有用的功能库、包和工具来改进我们在 NodeJS 平台上的开发。
解决在 Cygwin中的错误 Make Command Not Found
发布时间:2023/06/09 浏览次数:190 分类:操作系统
-
本文将讨论处理 bash: make: command not found in Cygwin 的方法。通过安装解决bash: make: command not found in Cygwin
Bash 中的错误处理
发布时间:2023/06/09 浏览次数:134 分类:操作系统
-
本文介绍了 bash 中的错误处理。 请记住,了解退出代码、选项(如 errexit 和 trap)使我们能够构建健壮的脚本并更有效地管理 bash 问题。Bash 中的退出代码 基于退出代码处理错误是检测命令失败
Bash 中 Curl 命令的 Urlencode 数据
发布时间:2023/06/09 浏览次数:175 分类:操作系统
-
本文将教我们如何在 bash 中为 curl 命令对数据进行 urlencode。 让我们从 curl 命令的语法开始。Bash 中的 curl 命令 curl 命令的基本语法如下:
在 Bash 中获取绝对路径
发布时间:2023/06/09 浏览次数:96 分类:操作系统
-
在这篇 Bash 文章中,我们将学习在 Linux 中获取绝对路径的不同方法。 我们还将学习一些不同的 Linux 命令来获取文件的绝对路径。
Bash Nohup 与 & 的区别
发布时间:2023/06/09 浏览次数:137 分类:操作系统
-
这篇简短的文章介绍了通过 Bash 在后台运行 Linux 进程的 nohup 命令和 & 控制运算符。 此外,我们将进一步研究 nohup 和 & 之间的主要区别。在后台运行 Linux 进程