问题标签 [shellcheck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
539 浏览

linux - 如何在不导致脚本失败的情况下满足 shellcheck?

我目前正在测试 GitHub Actions,快速入门解释了如何将超级 linter 添加到 repo,这是在整个 repo 中应用 linting 的一种简单方法——我喜欢这个想法,所以我将它添加到我的 repo 中,其中一个 linter它适用的是 shellcheck,它在我的一个 shell 脚本上引发了一些错误。

该 shell 脚本docker run使用以下代码发出:

Shellcheck 正在抛出SC2086 双引号以防止${EXTRA_DOCKER_ARGS}. 我可以通过将代码更改为:

(注意${EXTRA_DOCKER_ARGS}用引号括起来)

docker:无效的参考格式

如果我添加set -x到脚本的顶部,它会显示问题所在:

+ docker run --rm -it '' myimage:mytag docker
: 无效的参考格式。

请注意如何将两个额外的撇号添加到命令中。

我的问题很简单......我该如何解决这个问题?我想消除 Shellcheck 错误,但仍然有一个正常运行的脚本。

0 投票
1 回答
345 浏览

bash - Codacy 分析器警告:在 POSIX sh 中,[[ ]] 未定义

当我codacy-analysis-cli analyze为下一行脚本运行命令时:

我收到了下一个警告: Found [Warning] `In POSIX sh, [[ ]] is undefined.` in scripts/grammar.sh:20 (shellcheck_SC2039)

我该如何解决?

0 投票
1 回答
110 浏览

visual-studio-code - 所有没有扩展名的文件的shellcheck vscode“shellcheck.ignorePatterns”

我正在使用 shellcheck vscode 扩展,我希望 shellcheck 忽略所有没有文件扩展名的文件。我尝试了许多不同的 glob 模式,但没有任何效果。

我得到的最接近的是:

但它真的不是很接近。

有人知道魔法酱吗?

0 投票
1 回答
202 浏览

shell - 在 Jenkins 中记录 shellcheck 结果

我正在寻找一种在我的 Jenkins Pipeline 脚本中记录shellcheck违规结果的方法。到目前为止,我找不到任何东西。对于其他工具(Java、Python),我正在使用Warnings Next Generation,但它似乎还不支持 shellcheck。我希望在我的 Jenkins Job 仪表板中可视化违规行为。有没有人有这方面的经验?或者也许是一个现成的用于警告 NG 的自定义工具?

0 投票
1 回答
1072 浏览

bash - 在 bash 脚本中包含源代码时,如何修复或屏蔽使用 shellcheck 发现的 1091 错误?

Shellsheck 是一个shell脚本的静态分析工具,可以在一些Linux系统上本地安装,也可以在不在线安装的情况下使用,用于检查bash脚本的一些错误。

测试环境:

  • Linux Mint(Ubuntu 版)
  • 给出的是一个工作 bash 脚本,它回显“我是来自主文件的回显”和一个回显“我是来自源文件的回显”的源文件。
  • 展位文件位于同一文件夹中。
  • 通过本地安装版本使用 shellcheck 0.7.1-1 进行测试。

主文件

源文件.sh

我如何在终端上运行它:

终端上的输出(看起来工作正常):

通过 shellcheck -x 检查的错误消息:

可能的解决方案(这对我不起作用,可能取决于我的错误语法):

无效解决方案示例:

基于:“告诉 ShellCheck 在哪里可以找到源文件(从 0.4.0 开始):”

资源:

主文件

源文件.sh:

终端上的错误信息:

0 投票
0 回答
12 浏览

bash - 将 find 的结果分配给数组

我想知道在将值数组传递给像 zip 这样的程序时,bash 中是否有更好的方法,因为 shell 检查会抱怨如示例中所示。第一次调用显示了一种可行的方法,但 shell check 抱怨,第二个 zip 不起作用但 shell check 很高兴。

在关闭这个问题之后,因为我猜想过度简化了这个例子,并使用提供的 lings 尝试了一些事情并提出了这个解决方案。我在 find 调用周围添加了括号并添加了 declare -a。现在两个 zip 调用都有效。

这是解决这个问题的正确方法吗?

在 bash 中解决这个问题的首选方法是什么?

0 投票
0 回答
82 浏览

sonarqube - Shellcheck 和 Sonarqube

当我开始一项测试时,我收到:

执行命令时出错:无法运行程序“shellcheck”:错误=2,没有这样的文件或目录错误:命令是否已安装并在路径中?错误:提示:在调试模式下运行扫描程序以获取完整的堆栈跟踪

我从声纳 qube 安装了插件。sonar-shellcheck-plugin-2.4.0.jar jar 位于目录 /opt/sonarqube/extensions/plugins 内

如何解决这个问题?

0 投票
1 回答
40 浏览

shell - Github 操作的 Actionlint 问题

我正在尝试使用reviewdog/action-actionlint:v1.18.2并且出现此错误:

在这一行:

我应该怎么办 ?