GNU 并行与 shellcheck 对多个文件



如何使用GNU Parallel对所有带有包装函数的*.sh运行shellcheck?

此尝试具有正确的目标文件,但 Parallel 似乎在与子外壳上挣扎。

lint:sh() {
local output
targets=$(find . -name '*.sh' -exec echo {} ;)
output=$(parallel --no-notice shellcheck ::: "$targets")
results $? "$output"
}

使用以下方法:

lint:sh() {
local output
output=$(find . -name "*.sh" -print0 | parallel -q0 --no-notice shellcheck)
...
}

由于 bash 中的不同缺陷,最安全的方式可能是

targets=()
while read -r -d '' file; [[ $file ]]; do
targets+=("$file");
done < <(find . -name '*.sh' -print0)

还因为targets类型更改为数组

output=$(parallel --no-notice shellcheck ::: "${targets[@]}")

相关内容

  • 没有找到相关文章

最新更新