如何删除环境变量的 "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:-}"
如何删除 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:-}"