#!/bin/
bash
# 用shell中的数组构造统计不同的组合个数.
# 下面的组合有(
1
,
6
)(
3
,
4
)(
5
,
5
)(
1
,
6
)(
5
,
5
)(
4
,
3
)(
1
,
8
)
# 不同的组合为(
1
,
6
)(
3
,
4
)(
5
,
5
)(
4
,
3
)(
1
,
8
)
arrayLeft
=(
1
3
5
1
5
4
1
)
arrayRight
=(
6
4
5
6
5
3
8
)
# comNum用来表示不同组合个数
comNum
=
0
arrayLeftLength
=${#arrayLeft[*
]}
if
[[ arrayLeftLength -ge
1
]]
then
array[
0
]=
"
${arrayLeft[0]} ${arrayRight[0]}
"
arrayDiff[
0
]=${array[
0
]}
((comNum
+=
1
))
fi
for
((i=
1
;i<arrayLeftLength;i++
))
do
array[$i]
=
"
${arrayLeft[$i]} ${arrayRight[$i]}
"
sameFlag
=
0
for
((j=
0
;j<=$(($i-
1
));j++
))
do
if
[[
"
${array[$i]}
"
=
"
${array[$j]}
"
]]
then
sameFlag
=
1
break
fi
done
if
[[ sameFlag -eq
1
]]
then
:
else
arrayDiff[$comNum]
=
${array[$i]}
((comNum
+=
1
))
fi
done
echo
$comNum
echo
${array[*
]}
echo
${arrayDiff[*
]}
for
((i=
0
;i<arrayLeftLength;i++
))
do
echo
${arrayDiff[$i]}
done

