在 Bash 中检查语法
本文讨论了在不运行脚本的情况下检查 Bash 脚本是否存在语法问题的方法。
语法错误是由于代码中的某些语法或拼写错误造成的。 在其他编程语言的现代编译器中,编译器甚至在运行程序之前就会突出显示此类错误。
在 Bash 脚本中情况并非如此,因为 Bash 是一个命令行解释器。 因此,我们需要单独检查语法错误。
可以有不同的技术来检查语法问题,如下所示。
使用在线 ShellCheck 编辑器
有一个在线工具 Shell Check 可以检查脚本的语法错误。
在上图中,有两个独立的窗口。 一个是代码编辑器,下半部分通过指定行号显示代码中的错误和警告列表。
ShellCheck 编辑器对于初学者和专家级程序员来说是一个非常有用的工具,因为它会在执行代码之前检测代码中的小到高级问题。
使用 bash -n(noexec 模式)命令
您还可以将 -n 标志 (noexec) 与 bash 命令一起使用来检查脚本中的错误。
bash -n [script-name]
这将只读取脚本中的所有命令并检查错误而不运行它们。 如果命令中有错误,它会显示出来; 否则,不会显示任何输出。
例如,考虑以下脚本。
请注意
,我们错过了 if 语句的结束(即,使用 fi 而不是 if)。 所以,它会给出错误。
使用 sh 命令
另一个检查语法错误的命令是:
sh -n [script-name]
我们将为上一节中讨论的同一脚本运行命令并检查错误。
相关文章
使用 Bash 对文本文件中的数字列表求和
发布时间:2023/06/11 浏览次数:109 分类:操作系统
-
本篇文章将介绍使用 Bash 脚本对文件中的数字列表求和的多种方法。 第一种方法涉及使用粘贴命令,我们将讨论两种情况:使用现有文件和使用标准输入读取文件。
在 Bash 中传递所有参数
发布时间:2023/06/11 浏览次数:197 分类:操作系统
-
在 Bash 脚本中,我们主要使用语法 $1 $2 $3 ... $N 在函数中传递变量。此外,我们将看到必要的示例和解释,以使主题更容易理解。在 Bash 中传递所有参数
在 Bash 中解析 XML
发布时间:2023/06/11 浏览次数:109 分类:操作系统
-
本文将展示我们如何通过 Bash 解析 XML。我们将在这里讨论两个库。 我们的第一个库是 xmllint,第二个库称为 XMLStarlet。在 Bash 中使用 xmllint 解析 XML
Bash 脚本中的 Echo Tab 字符
发布时间:2023/06/11 浏览次数:198 分类:操作系统
-
本文演示了如何回显特殊字符(例如制表符),否则这些字符会在 Bash 脚本中转换为单个空格字符。 这扩展到 Bash 以外的 shell(例如 zsh)。
在 Bash 中回显到 stderr
发布时间:2023/06/11 浏览次数:102 分类:操作系统
-
本文将了解 stderr 及其功能。 此外,我们将查看一些示例,这些示例将使该主题更容易理解。在 Bash 中回显到 stderr 命令 stderr 主要用于在执行任何命令期间保持错误的重新编码。
在 Bash 中连接多个文件
发布时间:2023/06/10 浏览次数:170 分类:操作系统
-
有时出于各种目的,我们需要将多个文件连接成一个文件。 在 Bash 脚本中,很容易完成这项任务。在 Bash 中连接多个文件
在 Bash 中打开 Emacs
发布时间:2023/06/10 浏览次数:50 分类:操作系统
-
本文将展示我们如何在 Bash 中打开 Emacs。 我们还将讨论如何安装 Emacs 文本编辑器。在您的系统中安装 EMACS 假设您的系统中没有 Emacs。
在 Bash 中清除终端屏幕
发布时间:2023/06/10 浏览次数:101 分类:操作系统
-
有多种方法可以在 bash 脚本中清除终端。 本文将讨论 3 种清除终端的方法。使用 tput reset 清除终端屏幕 第一种方法使用关键字 tput reset 来清除屏幕。
在 Bash 中使用双管道和单管道
发布时间:2023/06/10 浏览次数:122 分类:操作系统
-
在本文中,我们将了解如何使用双管道(也称为 OR)和 Bash 脚本中的管道。 此外,我们将看到必要的示例和解释,以使主题更容易理解。在Bash中使用双管道 ||