shellcheck

空子shell的shell检测
shellcheck

空子shell的shell检测

SC1143建议将包装的 shell 命令的注释部分包装在子 shell 中。 Posix shell 是否“足够智能”,在发现子 shell 不执行任何操作时不会启动子 shell? Bash 和 Zsh 怎么样? ...

Admin

为什么我需要禁用=SC2031
shellcheck

为什么我需要禁用=SC2031

你能告诉我,为什么我必须# shellcheck disable=SC2030在下面的脚本中? get_names_and_hosts(){ unset LOCAL_HOSTS declare -a LOCAL_HOSTS unset LOCAL_NAMES declare -a LOCAL_NAMES multipass list --format json | jq -r '.list[] | [ .name, .ipv4[0] ] | @tsv' | while IFS=$'\t' read -r name ipaddre...

Admin

当前目录的 POSIX One-Liner - 尝试使其通过 ShellCheck
shellcheck

当前目录的 POSIX One-Liner - 尝试使其通过 ShellCheck

本次讨论中 mklement0 的一行关于 POSIX 兼容脚本和获取完整路径的内容。 ShellCheck 失败。删除该空间会导致其不再工作。 https://stackoverflow.com/questions/29832037/how-to-get-script-directory-in-posix-sh dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) ^-- SC1007: Remove space after = if trying to assign a...

Admin

如果 !(...) 与;如果 [ $? -eq 0] (...)
shellcheck

如果 !(...) 与;如果 [ $? -eq 0] (...)

我正在编写一个 shell 脚本,并决定通过以下方式检查我的工作shellcheck.net。我能够在脚本中获得以下两行的功能相同的行为: findmnt /dev/sda1 >/dev/null ; if [ $? -eq 0 ]; then echo 1; else echo 0; fi 与 if ! findmnt /dev/sda1 >/dev/null; then echo 0; else echo 1; fi 然而 shellcheck投掷: SC2181:直接使用“if mycmd;”检查退出代码,而不是间接使用$?。 我并...

Admin

ShellCheck 个别重定向警告
shellcheck

ShellCheck 个别重定向警告

当我检查我的代码时,我正在使用此处文档创建启动脚本https://www.shellcheck.net它给了我一个警告,可以忽略它。但我想知道是否有更好的方法来编写代码并尽可能避免该警告。 https://github.com/koalaman/shellcheck/wiki/SC2129 cat << EOF >> /usr/local/etc/rc.d/"${name}" #!/bin/sh . /etc/rc.subr cpu="${cpu}" ram="${ram}" tap="...

Admin

关于引用(“A”B“C”)的 ShellCheck 警告
shellcheck

关于引用(“A”B“C”)的 ShellCheck 警告

我正在编写简单的 shell 脚本,当我检查我的脚本时https://www.shellcheck.net它在第 14 行给了我错误 Line 14: sysrc ifconfig_"${Bridge}"="addm ${NIC}" ^-- SC2140: Word is of the form "A"B"C" (B indicated). Did you mean "ABC" or "A\"B\"C"? https://github.com/koalaman/shellcheck/wiki/SC...

Admin

为什么不会||在 shell 脚本中工作?
shellcheck

为什么不会||在 shell 脚本中工作?

# Detect Operating System function dist-check() { # shellcheck disable=SC1090 if [ -e /etc/os-release ]; then # shellcheck disable=SC1091 source /etc/os-release DISTRO=$ID # shellcheck disable=SC2034 DISTRO_VERSION=$VERSION_ID fi } # Check Operating Syste...

Admin

Bash 中双引号和不双引号数组有什么区别?
shellcheck

Bash 中双引号和不双引号数组有什么区别?

在跟踪 shellscript 中的错误时,我发现此代码片段中存在以下行为: declare -a filelist readarray filelist < <(ls -A) readonly filelist for file in "${filelist[@]}"; do sha256sum ${filelist[$file]} | head -c 64 done 当数组filelist不包含在双引号中时,命令成功。我一直在使用 ShellCheck 来尝试改进我的编码,它建议- 双引号可防止通配符和分词。 在这种情况...

Admin

寻找匹配的“”问题时出现意外的 EOF
shellcheck

寻找匹配的“”问题时出现意外的 EOF

我需要一些帮助来找出我的代码出了问题的地方。代码如下: servers=( Sanger ) races=( American African Asian) jobbs=( NCBI ) ranges=( 1-2, 2-3, 3-4 ) for server in "${servers[@])" do for job in "${jobbs[@]}" do for race in "${races[@]}" do for range in "${ranges[@]}" do cd ${RESULTS} cd "$server"...

Admin

ShellCheck 抱怨我的表达式没有用双引号引起来,而实际上它是用双引号引起来的;为什么?
shellcheck

ShellCheck 抱怨我的表达式没有用双引号引起来,而实际上它是用双引号引起来的;为什么?

我正在使用 AWS CLI 编写 bash 脚本,但shellcheck给出了一个我认为不正确的错误。我想尝试弄清楚为什么它会吹毛求疵。 这是代码和错误消息: for server in $(${aws} ec2 describe-instances --query 'Reservations[].Instances[][].{Name: Tags[?Key==`Name`].Value[] | [0]}' --filters "Name=tag:Name,Values=${server_name}*" --output text); ...

Admin

Bash - 使用 glob 打印反向文件列表
shellcheck

Bash - 使用 glob 打印反向文件列表

有没有办法通过 glob 反转文件列表? 所以我会得到与以下相同的结果: ls -r * 我在 shell 脚本中使用它并shellcheck不断抱怨: ^--------^ SC2045:迭代 ls 输出很脆弱。使用全局。 ...

Admin

VS 代码编辑器 |如何为 ShellCheck 添加 -x 开关?
shellcheck

VS 代码编辑器 |如何为 ShellCheck 添加 -x 开关?

问题描述与重现 在终端运行: shellcheck -x my_script my_script另一个(部分)脚本的来源。 我的开关没有出现错误-x,但如果我运行它没有-x: shellcheck my_script 我收到这样的通知: . ./functions/my_function ^-- SC1091: Not following: ... was not specified as input (see shellcheck -x). GitHub 上的 SC1091 我的外壳检查 我正在使用位于以下位置的自编...

Admin

为什么在将字符串变量作为命令运行时不能引用它?
shellcheck

为什么在将字符串变量作为命令运行时不能引用它?

我的基于 Ubuntu/Debian 的 Linux 更新 POSIX shell 脚本似乎要求我不是双引号包含正在执行的存储命令的字符串变量。由于我不明白这个问题,所以想请问这是为什么?如果代码是正确的呢? 警告:SC2086,维基百科,“双引号可防止通配符和分词。” 脚本如下,突出显示有问题的部分: #!/bin/sh # exit script when it tries to use undeclared variables set -u # color definitions readonly red=$(tput bold)$(tput s...

Admin