问题标签 [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.
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 错误,但仍然有一个正常运行的脚本。
bash - Codacy 分析器警告:在 POSIX sh 中,[[ ]] 未定义
当我codacy-analysis-cli analyze
为下一行脚本运行命令时:
我收到了下一个警告:
Found [Warning] `In POSIX sh, [[ ]] is undefined.` in scripts/grammar.sh:20 (shellcheck_SC2039)
我该如何解决?
visual-studio-code - 所有没有扩展名的文件的shellcheck vscode“shellcheck.ignorePatterns”
我正在使用 shellcheck vscode 扩展,我希望 shellcheck 忽略所有没有文件扩展名的文件。我尝试了许多不同的 glob 模式,但没有任何效果。
我得到的最接近的是:
但它真的不是很接近。
有人知道魔法酱吗?
shell - 在 Jenkins 中记录 shellcheck 结果
我正在寻找一种在我的 Jenkins Pipeline 脚本中记录shellcheck违规结果的方法。到目前为止,我找不到任何东西。对于其他工具(Java、Python),我正在使用Warnings Next Generation,但它似乎还不支持 shellcheck。我希望在我的 Jenkins Job 仪表板中可视化违规行为。有没有人有这方面的经验?或者也许是一个现成的用于警告 NG 的自定义工具?
bash - 在 bash 脚本中包含源代码时,如何修复或屏蔽使用 shellcheck 发现的 1091 错误?
Shellsheck 是一个shell脚本的静态分析工具,可以在一些Linux系统上本地安装,也可以在不在线安装的情况下使用,用于检查bash脚本的一些错误。
- https://github.com/koalaman/shellcheck
- https://www.shellcheck.net/
- https://man.archlinux.org/man/shellcheck.1.en
测试环境:
- Linux Mint(Ubuntu 版)
- 给出的是一个工作 bash 脚本,它回显“我是来自主文件的回显”和一个回显“我是来自源文件的回显”的源文件。
- 展位文件位于同一文件夹中。
- 通过本地安装版本使用 shellcheck 0.7.1-1 进行测试。
主文件
源文件.sh
我如何在终端上运行它:
终端上的输出(看起来工作正常):
通过 shellcheck -x 检查的错误消息:
可能的解决方案(这对我不起作用,可能取决于我的错误语法):
- https://github.com/koalaman/shellcheck/wiki/SC1090
- https://github.com/koalaman/shellcheck/wiki/SC1091
- https://github.com/koalaman/shellcheck/issues/769
- https://github.com/koalaman/shellcheck/wiki/Directive
无效解决方案示例:
基于:“告诉 ShellCheck 在哪里可以找到源文件(从 0.4.0 开始):”
资源:
主文件
源文件.sh:
终端上的错误信息:
bash - 将 find 的结果分配给数组
我想知道在将值数组传递给像 zip 这样的程序时,bash 中是否有更好的方法,因为 shell 检查会抱怨如示例中所示。第一次调用显示了一种可行的方法,但 shell check 抱怨,第二个 zip 不起作用但 shell check 很高兴。
在关闭这个问题之后,因为我猜想过度简化了这个例子,并使用提供的 lings 尝试了一些事情并提出了这个解决方案。我在 find 调用周围添加了括号并添加了 declare -a。现在两个 zip 调用都有效。
这是解决这个问题的正确方法吗?
在 bash 中解决这个问题的首选方法是什么?
sonarqube - Shellcheck 和 Sonarqube
当我开始一项测试时,我收到:
执行命令时出错:无法运行程序“shellcheck”:错误=2,没有这样的文件或目录错误:命令是否已安装并在路径中?错误:提示:在调试模式下运行扫描程序以获取完整的堆栈跟踪
我从声纳 qube 安装了插件。sonar-shellcheck-plugin-2.4.0.jar jar 位于目录 /opt/sonarqube/extensions/plugins 内
如何解决这个问题?
shell - Github 操作的 Actionlint 问题
我正在尝试使用reviewdog/action-actionlint:v1.18.2并且出现此错误:
在这一行:
我应该怎么办 ?