请看SHELL1:
aaa=expr $1 &brvbarcut -c 5
table_name="tb_"$aaa
echo $table_name
这样SHELL1输出正常;
请看SHELL2:
read month
th=echo $month &brvbarcut -c 5
if [ $th = 0 ]
then
aaa=echo $month &brvbarcut -c 6
else
aaa=echo $month &brvbarcut -c 5-6
fi
table_name="tb_"$aaa
echo $table_name
这样SHELL也输出正常.
再看SHELL3:
th=expr $1 &brvbarcut -c 5
if [ $th = 0 ]
then
aaa=echo $month &brvbarcut -c 6
else
aaa=echo $month &brvbarcut -c 5-6
fi
table_name="tb_"$aaa
echo $table_name
这样就输出不正常。实在找不到问题原因!
---------------------------------------------------------------
楼主,你month 没有值呀。
aaa=echo $month &brvbarcut -c 6
你将$month的第6个字符取出,但它本来就没有值。
先赋值。
th=expr $1 &brvbarcut -c 5
month=$1 ####这里先赋值
if [ $th = 0 ]
then
aaa=echo $month &brvbarcut -c 6
else
aaa=echo $month &brvbarcut -c 5-6
fi
table_name="tb_"$aaa
echo $table_name