我希望检查一个变量是否已经设置。 我看到了关于这个主题的一些文章,但没有针对以下情况的文章。 在我的情况下,我有无限数量的变量(BASE1... BASEn),我想检查是否定义了BASEX变量。
BASE="BAS0"
BASE1="BAS1"
BASE2="BAS2"
BASE3=""
var="";
cpt=0;
while true
do
if [ $cpt -eq 0 ];
then
if ! ${BASE+false};
then
echo "BASE:${BASE}is set"; ### --> Ok it works
else
echo "NOT set";
break;
fi
else
if [ -z BASE${cpt} ]; ### ---> don t work
then
if [ "BASE${cpt}" = "" ];
then
echo "BASE:${BASE}is set";
else
echo "BASE:${BASE}is empty ! ==> exit";
exit 0;
fi
else
val="BASE${cpt}"
echo "$val NOT set"; ### --> Always here !
break;
fi
fi
cpt=`expr $cpt + 1`;
done
我尝试了几种方法,但都没有成功:
if [ -z BASE${cpt} ]; ### ---> don t work
if ! ${BASE${cpt}+x}; ### ---> don t work
...
我该怎么做?
提前感谢。