如何删除环境变量的 "SC2154" 警告

How can I remove the "SC2154" warning for environment variables

如何删除 shell 检查 shell 脚本时的警告 "SC2154"?

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

echo "proxy=$http_proxy" | sudo tee -a /etc/test.txt

警告是"SC2154: http_proxy is referenced but not assigned."

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

wiki page of the warning 中的详细描述,您尝试使用(可能)未初始化的变量 $http_proxy

您可以suppress any warning发表评论:

# shellcheck disable=SC2154
echo "proxy=$http_proxy" | ...

但是,更好的解决方案是修复脚本。在这里,您似乎假设 http_proxy 是一个环境变量。如果是这样的话,你应该坚持命名约定,将其命名为HTTP_PROXY。 Shellcheck 遵守此约定,不会显示警告。

或者,如果 http_proxy 为 null 或未设置,您可以将其显式展开为空:

echo "proxy=${http_proxy:-}"