迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Bash 中 Syntax Error Near Unexpected Token 错误

作者:迹忆客 最近更新:2023/06/09 浏览次数:

本文演示如何识别和更正由于 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 命令的错误

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

修复 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 平台上的开发。

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 抑制输出

发布时间:2023/06/09 浏览次数:60 分类:操作系统

本文将解释使用 Bash 抑制命令输出的方法。 此外,我们还将研究将输出重定向到文件以供以后使用。Shell 和脚本简介

Bash Nohup 与 & 的区别

发布时间:2023/06/09 浏览次数:137 分类:操作系统

这篇简短的文章介绍了通过 Bash 在后台运行 Linux 进程的 nohup 命令和 & 控制运算符。 此外,我们将进一步研究 nohup 和 & 之间的主要区别。在后台运行 Linux 进程

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便