假设您希望脚本从环境中获取变量:
#!/usr/bin/env bash
set -eu
if (( ${A-} )); then
echo true
else
echo false
fi
(empty)
算术扩展在这里处理, 0
,情况似乎更合理1
,否则:
if [ "${A-}" ] && [ "${A-}" != 0 ]; then
但是之后,
$ A='1 - 1' ./1.sh
false
$ A='B = 1' ./1.sh
true
因此,现在您基本上可以更改通常不希望允许的变量。你有什么建议?如何处理取自环境变量的布尔标志?
如果您不确定变量是否包含 int,则可以验证其值:
这是我所能接受的。