问题标签 [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 投票
1 回答
878 浏览

arrays - SC2207 来自 subshel​​l 的 Bash 数组分配未按预期拆分

我一直在使用以下方法填充数组:

这会引发shellcheck 错误 SC2207

首选 mapfile 或 read -a 来拆分命令输出

但是该建议没有按预期工作。

我还尝试删除子命令周围的引号。

起初看起来好像设置的IFS没有任何效果,但以下工作:

我忽略了一些东西,但我无法识别问题并想了解行为。

0 投票
1 回答
363 浏览

posix - 在 POSIX sh 中,字符串替换是未定义的。在尝试做 PASS2="${PASS//[${special_chars}]/}"

我的代码是

我希望 PASS2 包含 PASS 中的所有字符 - 特殊字符。这工作正常,但有外壳检查错误。

我试着做

这些在功能上不起作用。

0 投票
2 回答
1684 浏览

bash - 如何删除环境变量的“SC2154”警告

linting shell 脚本时如何删除 shellcheck 的警告“SC2154”?

警告是“SC2154:http_proxy 已被引用但未分配”。

编辑:我想使用 sudo 将环境变量“http_proxy”写入 test.txt 文件。

0 投票
3 回答
2631 浏览

bash - 如何明确故意分词?

我在我的脚本上运行shellcheck并且经常收到这个警告(在这种情况下是正确的,因为cd foo bar baz没有意义):

这个警告大多是好的。变量包含多个参数时的一种例外情况:

是否有更明确的关于故意分词的约定,可能避免这个 shellcheck 警告?

0 投票
1 回答
114 浏览

bash - 如何避免 bash 脚本上的 sed 错误?

我需要在最后一行之后添加文本,但出现此错误。

如何避免此错误保持相同的操作?

0 投票
1 回答
38 浏览

bash - 可选择在 curl 请求中包含用户名和密码?

我可以选择在 curl 请求中包含用户和密码,如下所示:

这似乎工作正常,但我收到了这个 shellcheck 警告:

在它周围加上引号是行不通的,例如,如果我这样做:

那么当没有提供用户名和密码时,这会导致 curl 请求中的双引号为空curl "" -X PUT ...,从而产生<url> malformed错误。

我可以为 curl 命令使用 if-else,但我宁愿避免重复。尽管有 shellcheck 警告,上述方法是否可以接受?

0 投票
1 回答
125 浏览

phpstorm - 在 PhpStorm 中再次启用 Shellcheck

在将 PhpStorm (MacOS) 更新到新版本和一些导致我删除所有 PhpStorm 应用程序实例并重新安装最新版本然后将插件复制回“~/Library/Application Support”中的应用程序文件夹之后我是再次要求为我正在处理的 shell 脚本启用 Shellcheck。对于那个特定的文件,我不需要 Shellcheck,所以我禁用了它。但是后来 Shellcheck 不适用于所有脚本,我在 PhpStorm 设置中找不到任何选项来再次启用它。我发现的唯一选项已经被选中:

在此处输入图像描述

那么如何再次启用它呢?

0 投票
1 回答
670 浏览

ubuntu - openBinaryFile:使用 shellcheck 时不存在(没有这样的文件或目录)

我在 Ubuntu 18.04.4 LTS 上看到了这个问题,用于 shellcheck:

为什么会出错?

0 投票
3 回答
76 浏览

bash - 将输出作为文件名执行

在我的一个 Bash 脚本中,有一点我有一个SCRIPT包含 的变量/path/to/an/exe,而脚本最终需要做的是执行该可执行文件。因此脚本的最后一行是

所以$SCRIPT扩展为/path/to/an/exe, 并$(/path/to/an/exe)执行可执行文件。

但是,shellcheck在脚本上运行会生成此错误:

$($SCRIPT)有没有办法以更合适的方式重写它?eval在这里似乎没有太大帮助。

0 投票
4 回答
218 浏览

bash - 执行由执行名称在变量中的脚本产生的命令

最初发布这个问题时,我完全用错了,获得了另一个合理但不同的问题,在这里得到了正确的回答。

以下是我最初想问的问题的正确版本。

在我的一个 Bash 脚本中,有一点我有一个变量SCRIPT,其中包含/path/to/an/exe在执行时输出一个line to be executed.

我的脚本最终需要做的是执行line to be executed. 因此脚本的最后一行是

所以$SCRIPT扩展为/path/to/an/exe, 并$(/path/to/an/exe)执行可执行文件并返回line to be executed, 然后执行。

但是,shellcheck在脚本上运行会生成此错误:

$($SCRIPT)有没有办法以更合适的方式重写它?eval在这里似乎没有太大帮助。