代码:
1 #!/bin/bash
2 #Author:ChickenLxg
3 #Date & Time:2010-12-23 07:40:55
4 #Description:
5
6 usage(){
7 echo "Usage:`basename $0` [-n [1-8]] usename."
8 }
9
10 while getopts ":n:" OPT ; do
11 case $OPT in
12 n)
13 c=$OPTARG
14 ;;
15 /?)
16 usage
17 exit 1
18 ;;
19 esac
20 done
21
22 [ -e /root/temp ] || mkdir /root/temp
23 [ -e /root/temp/name.txt ] && rm -f /root/temp/name.txt || touch /root/temp/name.txt
24 echo "lixiaoge liyuanpeng cuijia zhaobaoyu houlijun jingjing zhangyong zhaoyuefei" >>/root/temp/name.txt
25 a=(`cat /root/temp/name.txt`)
26 m=8
27 until [ $c -eq 0 ];do
28 R=$[$RANDOM%$m]
29 echo "${a[$R]} is selected."
30 sed -i "s/${a[$R]}//g" /root/temp/name.txt
31 a=(`cat /root/temp/name.txt`)
32 m=$[$m-1]
33 c=$[$c-1]
34 sleep 1
35 done
截图:
问题:
当用for 和 if 语句来选择多人循环的时候,总是不循环,不知道是怎么回事。是for的{}不能跟参数么?
shell中变量的大小写一定要分清~!!
现在的shell中有个没有解决的问题,不能对-n传入的数进行判断,当不为1-8中的数就会出错。