linting shell 脚本时如何删除 shellcheck 的警告“SC2154”?
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
echo "proxy=$http_proxy" | sudo tee -a /etc/test.txt
警告是“SC2154:http_proxy 已被引用但未分配”。
编辑:我想使用 sudo 将环境变量“http_proxy”写入 test.txt 文件。
linting shell 脚本时如何删除 shellcheck 的警告“SC2154”?
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
echo "proxy=$http_proxy" | sudo tee -a /etc/test.txt
警告是“SC2154:http_proxy 已被引用但未分配”。
编辑:我想使用 sudo 将环境变量“http_proxy”写入 test.txt 文件。
正如您尝试使用(可能)未初始化变量的警告的 wiki 页面上的$http_proxy
详细描述。
您可以通过注释禁止任何警告:
# shellcheck disable=SC2154
echo "proxy=$http_proxy" | ...
但是,更好的解决方案是修复脚本。在这里,您似乎假设http_proxy
是一个环境变量。如果是这种情况,您应该遵守命名约定并将其命名为HTTP_PROXY
. Shellcheck 遵守此约定,不会显示警告。
或者,要抑制警告,http_proxy
如果它为 null 或未设置,您可以显式扩展为空:
echo "proxy=${http_proxy:-}"