回显以“nlu_setting”开头的所有环境变量的名称和值

Ale*_*lls 6 shell bash environment-variables variable

我正在寻找一种方法来回显以 nlu_setting 开头的所有环境变量的名称和值,因此输出可能如下所示:

nlu_setting_json=true
nlu_setting_global=0
nlu_setting_bar=foo
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

Kus*_*nda 9

for var in "${!nlu_setting_@}"; do
    printf '%s=%s\n' "$var" "${!var}"
done
Run Code Online (Sandbox Code Playgroud)

扩展${!nlu_setting_@}是一个bash特定的扩展,它返回与特定前缀匹配的变量名称列表。这里我们用它来询问所有以字符串开头的名字nlu_setting_。我们遍历这些名称并将名称与该变量的值一起输出。

我们使用变量间接(${!var})获取变量的值。