37,719
社区成员
发帖
与我相关
我的任务
分享
echo trac_rows=${trac_rows}
count=0;
# start to dispose the options
if [ ${trac_rows} -eq 1 ]; then
{
LOOP=$((${start[1]}))
while [[ $LOOP -le $((${end[1]})) ]]; do
{
echo LOOP[1]=$LOOP
echo count=$count
count=$((count+1))
LOOP=`expr ${LOOP} + $((${step[1]}))`
}
done
}
elif [ ${trac_rows} -eq 2 ]; then
{
LOOP[1]=$((${start[1]}))
while [[ ${LOOP[1]} -le $((${end[1]})) ]]; do
{
LOOP[2]=$((${start[2]}))
while [[ ${LOOP[2]} -le $((${end[2]})) ]]; do
{
echo LOOP[2]=$LOOP
echo count=$count
count=$((count+1))
LOOP[2]=`expr ${LOOP[2]} + $((${step[2]}))`
}
done
LOOP[1]=`expr ${LOOP[1]} + $((${step[1]}))`
}
done
}
else
{
echo "too many nesting options"
}
fi
hnjyfx1@infor $ tmp.sh 1 2
LOOP=1
count=2
#!/bin/sh
trac_rows=$1
if [ $# = 2 ]; then
count=$2
else
count=0
fi
start[1]=1
step[1]=1
end[1]=2
start[2]=1
step[2]=1
end[2]=1
max=4
if [ ${trac_rows} -le ${max} ]; then
times=${trac_rows}
LOOP[1]=${start[1]}
while [ ${LOOP[1]} -le ${end[1]} ]; do
{
while [ ${times} -gt 0 ]; do
{
if [ ${times} -gt 1 ]; then
times=`expr ${times} - 1`
#echo "tmp.sh ${times} ${count}"
tmp.sh ${times} ${count}
count=$?
else
LOOP[2]=${start[2]}
while [ ${LOOP[2]} -le ${end[2]} ]; do
{
echo LOOP=${LOOP[2]}
echo count=$count
count=`expr ${count} + 1`
LOOP[2]=`expr ${LOOP[2]} + ${step[2]}`
sleep 1
}
done
times=`expr ${times} - 1`
fi
}
done
LOOP[1]=`expr ${LOOP[1]} + ${step[1]}`
}
done
exit ${count};
else
{
echo "too many nesting options"
exit -1;
}
fi
[root@RHEL6A shcode]# cat temp.sh
#!/bin/sh
trac_rows=$1
count=0;
start[1]=0
end[1]=2
step[1]=1
start[2]=0
end[2]=3
step[2]=1
# start to dispose the options
if [ ${trac_rows} -eq 1 ]; then
{
LOOP=$((${start[1]}))
echo LOOP:$LOOP $((${end[1]}))
while [[ $LOOP -le $((${end[1]})) ]]; do
{
echo LOOP[1]=$LOOP
echo count=$count
count=$((count+1))
LOOP=`expr ${LOOP} + $((${step[1]}))`
sleep 1
}
done
}
elif [[ ${trac_rows} -eq 2 ]] || [[ ${trac_rows} -eq 3 ]]; then
{
LOOP[1]=$((${start[1]}))
while [[ ${LOOP[1]} -le $((${end[1]})) ]]; do
{
LOOP[2]=$((${start[2]}))
if [[ ${trac_rows} -eq 3 ]]
then
LOOP[2]=${end[2]}
fi
while [[ ${LOOP[2]} -le $((${end[2]})) ]]; do
{
echo LOOP[2]=$LOOP
echo count=$count
count=$((count+1))
LOOP[2]=`expr ${LOOP[2]} + $((${step[2]}))`
sleep 1
}
done
LOOP[1]=`expr ${LOOP[1]} + $((${step[1]}))`
}
done
}
else
{
echo "too many nesting options"
}
fi
[root@RHEL6A shcode]# ./temp.sh 1
LOOP:0 2
LOOP[1]=0
count=0
LOOP[1]=1
count=1
LOOP[1]=2
count=2
[root@RHEL6A shcode]# ./temp.sh 2
LOOP[2]=
count=0
LOOP[2]=
count=1
LOOP[2]=
count=2
LOOP[2]=
count=3
LOOP[2]=
count=4
LOOP[2]=
count=5
LOOP[2]=
count=6
LOOP[2]=
count=7
LOOP[2]=
count=8
LOOP[2]=
count=9
LOOP[2]=
count=10
LOOP[2]=
count=11
[root@RHEL6A shcode]# ./temp.sh 3
LOOP[2]=
count=0
LOOP[2]=
count=1
LOOP[2]=
count=2
[root@RHEL6A shcode]#