是否有可能检查bash脚本语法而不执行它?
使用Perl,我可以运行Perl -c '脚本名称'。bash脚本是否有等效的命令?
是否有可能检查bash脚本语法而不执行它?
使用Perl,我可以运行Perl -c '脚本名称'。bash脚本是否有等效的命令?
当前回答
sh -n script-name
运行这个。如果脚本中有语法错误,则返回相同的错误消息。 如果没有错误,则输出时不给出任何消息。您可以使用echo $?,它将返回0,确认成功,没有任何错误。
这对我很有效。我运行在Linux操作系统,Bash Shell。
其他回答
bash -n scriptname
也许有一个明显的警告:这验证语法,但不会检查您的bash脚本是否试图执行不在您路径上的命令,比如ech hello而不是echo hello。
我实际上检查了当前目录下所有bash脚本的语法错误,而没有使用find工具运行它们:
例子:
找到。name '*.sh' -print0 | xargs -0 -P"$(nproc)"-I{} bash -n "{}"
如果您想对单个文件使用它,只需编辑带有文件名的通配符。
sh -n script-name
运行这个。如果脚本中有语法错误,则返回相同的错误消息。 如果没有错误,则输出时不给出任何消息。您可以使用echo $?,它将返回0,确认成功,没有任何错误。
这对我很有效。我运行在Linux操作系统,Bash Shell。
仅用于验证语法:
shellcheck [programPath]
仅当语法通过时才运行程序,因此同时调试语法和执行:
外壳证明 [程序路径]
IntelliJ IDEA有一个检查语法的BashSupport插件。