我的脚本中有大量变量,如果任何一个变量为空,我希望脚本出错。
我知道我可以:
if [[ -z "$var_1" ]] || [[ -z "$var_2" ]] || ... [[ -z "$var_n" ]]; then
# failure message
fi
但是,如果以这种方式执行此操作,我无法通知用户哪个变量为空。是否有上述的替代方法,以便我可以告知用户空变量?
答案 0 :(得分:3)
#!/bin/sh
foo=(var_1 var_2 var_n)
for bar in ${foo[*]}
do
if [[ ! ${!bar} ]]
then
echo $bar is empty
fi
done
答案 1 :(得分:1)
首次引用变量时使用${var:?var is empty or unset}
。如果空字符串是可接受的,并且您只关心是否设置了变量,请执行${var?var is unset}
。在参数扩展中使用?
会导致shell终止,如果变量是(空或)未设置。