我试图弄清楚如何理智地和可移植地(尽可能地)处理名称不映射到有效 shell 变量的环境变量。结果逐字节准确至关重要,因此我不愿意经历诸如解析env
工具输出之类的技巧。
env 'Invalid Name=Some Value' bash <<'EOF'
s='Invalid Name'
printf '%q\n' "${!s}"
EOF
我希望上面的代码会发出Some Value
;相反,它返回一个空字符串。
我试图弄清楚如何理智地和可移植地(尽可能地)处理名称不映射到有效 shell 变量的环境变量。结果逐字节准确至关重要,因此我不愿意经历诸如解析env
工具输出之类的技巧。
env 'Invalid Name=Some Value' bash <<'EOF'
s='Invalid Name'
printf '%q\n' "${!s}"
EOF
我希望上面的代码会发出Some Value
;相反,它返回一个空字符串。