2.定义一个find函数,查找ubuntu和root的gid并使用变量接收结果
3.定义一个数组,写一个函数完成对数组的冒泡排序
4.使用break求1-100中的质数(质数:只能被1和他本身整除,如:357…)
解释:用select..in..和case..in..将三题链接起来选择执行
#!/bin/bash
find1() #查找ubuntu和root的gid
{
ugid=`grep ^ubuntu /etc/passwd | cut -d : -f 4`
rgid=`grep ^root /etc/passwd | cut -d : -f 4`
echo ubuntu的组ID为:$ugid
echo root的组ID为:$rgid
}
sor1() #冒泡排序函数
{
a=($*)
for((i=1;i<${#a[*]};i++))
do
for((j=0;j<${#a[*]}-i;j++))
do
if [ ${a[$j]} -gt ${a[$((j+1))]} ]
then
temp=${a[$j]}
a[$j]=${a[$((j+1))]}
a[(($j+1))]=$temp
fi
done
done
echo 排序后的结果为:${a[*]}
}
prime_number()
{
echo -n '1到100的所有质数分别为:'
echo -n 1
echo -n ' '
for i in `seq 2 1 100`
do
n=2
flag=0
while [ $n -lt $i ]
do
if [ $(($i%$n)) -eq 0 ]
then
flag=1
break
fi
((n++))
done
if [ $flag -eq 0 ]
then
echo -n $i
echo -n ' '
fi
done
echo
}
select n in 1 2 3 Q
do
case $n in
1)
find1
;;
2)
arr=(3 5 6 2 45 7 8 1 56)
sor1 ${arr[*]}
;;
3)
prime_number
;;
Q)
exit
esac
done
结果: