问题标签 [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.
arrays - SC2207 来自 subshell 的 Bash 数组分配未按预期拆分
我一直在使用以下方法填充数组:
首选 mapfile 或 read -a 来拆分命令输出
但是该建议没有按预期工作。
我还尝试删除子命令周围的引号。
起初看起来好像设置的IFS没有任何效果,但以下工作:
我忽略了一些东西,但我无法识别问题并想了解行为。
posix - 在 POSIX sh 中,字符串替换是未定义的。在尝试做 PASS2="${PASS//[${special_chars}]/}"
我的代码是
我希望 PASS2 包含 PASS 中的所有字符 - 特殊字符。这工作正常,但有外壳检查错误。
我试着做
和
这些在功能上不起作用。
bash - 如何删除环境变量的“SC2154”警告
linting shell 脚本时如何删除 shellcheck 的警告“SC2154”?
警告是“SC2154:http_proxy 已被引用但未分配”。
编辑:我想使用 sudo 将环境变量“http_proxy”写入 test.txt 文件。
bash - 如何明确故意分词?
我在我的脚本上运行shellcheck并且经常收到这个警告(在这种情况下是正确的,因为cd foo bar baz
没有意义):
这个警告大多是好的。变量包含多个参数时的一种例外情况:
是否有更明确的关于故意分词的约定,可能避免这个 shellcheck 警告?
bash - 如何避免 bash 脚本上的 sed 错误?
我需要在最后一行之后添加文本,但出现此错误。
如何避免此错误保持相同的操作?
bash - 可选择在 curl 请求中包含用户名和密码?
我可以选择在 curl 请求中包含用户和密码,如下所示:
这似乎工作正常,但我收到了这个 shellcheck 警告:
在它周围加上引号是行不通的,例如,如果我这样做:
那么当没有提供用户名和密码时,这会导致 curl 请求中的双引号为空curl "" -X PUT ...
,从而产生<url> malformed
错误。
我可以为 curl 命令使用 if-else,但我宁愿避免重复。尽管有 shellcheck 警告,上述方法是否可以接受?
ubuntu - openBinaryFile:使用 shellcheck 时不存在(没有这样的文件或目录)
我在 Ubuntu 18.04.4 LTS 上看到了这个问题,用于 shellcheck:
为什么会出错?
bash - 将输出作为文件名执行
在我的一个 Bash 脚本中,有一点我有一个SCRIPT
包含 的变量/path/to/an/exe
,而脚本最终需要做的是执行该可执行文件。因此脚本的最后一行是
所以$SCRIPT
扩展为/path/to/an/exe
, 并$(/path/to/an/exe)
执行可执行文件。
但是,shellcheck
在脚本上运行会生成此错误:
$($SCRIPT)
有没有办法以更合适的方式重写它?eval
在这里似乎没有太大帮助。
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
在这里似乎没有太大帮助。