是否有可能检查bash脚本语法而不执行它?
使用Perl,我可以运行Perl -c '脚本名称'。bash脚本是否有等效的命令?
是否有可能检查bash脚本语法而不执行它?
使用Perl,我可以运行Perl -c '脚本名称'。bash脚本是否有等效的命令?
当前回答
时间会改变一切。这是一个网站,提供在线语法检查shell脚本。
我发现它在检测常见错误方面非常强大。
关于ShellCheck
ShellCheck是一个用于sh/bash脚本的静态分析和检测工具。它主要关注处理典型的初级和中级级别的语法错误和陷阱,在这些错误中,shell只给出一个神秘的错误消息或奇怪的行为,但它也报告了一些更高级的问题,在这些问题中,极端情况可能导致延迟失败。
Haskell源代码可在GitHub!
其他回答
时间会改变一切。这是一个网站,提供在线语法检查shell脚本。
我发现它在检测常见错误方面非常强大。
关于ShellCheck
ShellCheck是一个用于sh/bash脚本的静态分析和检测工具。它主要关注处理典型的初级和中级级别的语法错误和陷阱,在这些错误中,shell只给出一个神秘的错误消息或奇怪的行为,但它也报告了一些更高级的问题,在这些问题中,极端情况可能导致延迟失败。
Haskell源代码可在GitHub!
sh -n script-name
运行这个。如果脚本中有语法错误,则返回相同的错误消息。 如果没有错误,则输出时不给出任何消息。您可以使用echo $?,它将返回0,确认成功,没有任何错误。
这对我很有效。我运行在Linux操作系统,Bash Shell。
IntelliJ IDEA有一个检查语法的BashSupport插件。
bash -n scriptname
也许有一个明显的警告:这验证语法,但不会检查您的bash脚本是否试图执行不在您路径上的命令,比如ech hello而不是echo hello。
如果您启用了语法检查,Bash shell脚本将运行语法检查
set -o noexec
如果你想关闭语法检查
set +o noexec