Bash 测试空变量
我的脚本中有大量变量,如果其中任何一个变量为空,我希望脚本出错 我知道我可以:Bash 测试空变量,bash,shell,variables,Bash,Shell,Variables,我的脚本中有大量变量,如果其中任何一个变量为空,我希望脚本出错 我知道我可以: if [[ -z "$var_1" ]] || [[ -z "$var_2" ]] || ... [[ -z "$var_n" ]]; then # failure message fi 但是,如果我这样做,我无法通知用户哪个变量是空的。有没有一种替代方法可以让我将空变量告知用户?只要在第一次引用变量时使用${var:?var为空或未设置}。如果可以接受空字符串,并且您只关心是否设置了变量,请执行${var?v
if [[ -z "$var_1" ]] || [[ -z "$var_2" ]] || ... [[ -z "$var_n" ]]; then
# failure message
fi
但是,如果我这样做,我无法通知用户哪个变量是空的。有没有一种替代方法可以让我将空变量告知用户?只要在第一次引用变量时使用
${var:?var为空或未设置}
。如果可以接受空字符串,并且您只关心是否设置了变量,请执行${var?var is unset}
。在参数展开中使用?
会导致shell终止,如果变量(为空或未设置)。只要在第一次引用变量时使用${var:?var为空或未设置}
。如果可以接受空字符串,并且您只关心是否设置了变量,请执行${var?var is unset}
。在参数展开中使用?
会导致shell终止,并且如果变量(为空或)未设置
#!/bin/sh
foo=(var_1 var_2 var_n)
for bar in ${foo[*]}
do
if [[ ! ${!bar} ]]
then
echo $bar is empty
fi
done