>------------------------------------------------------------------------------User:
$USERHost:
$THIS_HOSTDate:
$MYDATE------------------------------------------------------------------------------A:
创建子目录并复制文件B:
文件权限测试C:
文件字符转换D:
文件总数及文本行数统计E:
文件查找Q:
退出系统------------------------------------------------------------------------------
>MAYDAY
>echo-e-n"\tYourChoice[A,B,C,D,E,Q]:
"
>readCHOICE
>case$CHOICEin
>A|a)mkdir--mode=755/home/yxh/test/yinxiaohang
>iftest-d"/home/yxh/test/yinxiaohang"
>thencpfile1file2/home/yxh/test/yinxiaohang
>catfile1
>catfile2
>:
>/home/yxh/test/yinxiaohang/file1
>cat/home/yxh/test/yinxiaohang/file1
>:
>/home/yxh/test/yinxiaohang/file2
>cat/home/yxh/test/yinxiaohang/file2
>elseechofile1isnotafilename
>fi
>;;
>B|b)if[-ffile1]
>thentest-rfile1-a-wfile1-a-xfile1
>ls-lfile1
>elseechofile1donotrwx
>fi
>;;
>C|c)tr'a-z''A-Z'1
>tr'a-z''A-Z'2
>iftest-f1-a2
>thencat1
>cat2
>elseechofail!
>fi
>;;
>D|d)ls-l/dev
>ls-l/dev|grep^d|wc-l
>ls-l/dev|grep^l|wc-l
>cat3
>cat3|grep'^$'|wc-l
>env
>;;
>E|e)find/dev-name"s[a-z][a-z][a-z][a-z]"
>find/dev-name"s[a-z][a-z][a-z][a-z]">4
>var=$(cat4)
>file-b${var%%.*}
>;;
>Q|q)exit0
>;;
>*)echo-e"\t\007unknownuserreponse"
>;;
>esac
>echo-e-n"\tHitthereturnkeytocontinue"
>readDUMMY
>done
⑵文件pc.txt中保存了三个班级的学生选课成绩,试编写一段shell程序对文件内容进行统计、计算后输出各个班级选课的学生人数及每班选课成绩的优秀率。
pc.txt文件内容如下:
student1:
1301:
75
Student2:
1302:
96
Student3:
1303:
99
Student4:
1302:
93
Student5:
1303:
23
Student6:
1301:
77
yxh@Cancer:
~$#!
/bin/bash
yxh@Cancer:
~$PASS1=0;
yxh@Cancer:
~$PASS2=0;
yxh@Cancer:
~$PASS3=0;
yxh@Cancer:
~$NUMBER1=0;
yxh@Cancer:
~$NUMBER2=0;
yxh@Cancer:
~$NUMBER3=0;
yxh@Cancer:
~$SAVEDIFS=$IFS
yxh@Cancer:
~$IFS=:
yxh@Cancer:
~$whilereadNAMECLASSSCORE
>do
>case$CLASSin
>1301)
>NUMBER1=`expr$NUMBER1+1`
>if[$SCORE-ge90]
>thenPASS1=`expr$PASS1+1`
>fi
>;;
>1302)
>NUMBER2=`expr$NUMBER2+1`
>if[$SCORE-ge90]
>thenPASS2=`expr$PASS2+1`
>fi;;
>1303)
>NUMBER3=`expr$NUMBER3+1`
>if[$SCORE-ge90]
>thenPASS3=`expr$PASS3+1`
>fi
>;;
>*)
>echo"FAIL!
"
>;;
>esac
>doneyxh@Cancer:
~$echo$PASS1
0
yxh@Cancer:
~$echo$PASS2
2
yxh@Cancer:
~$echo$PASS3
1
yxh@Cancer:
~$PASS1=$(echo"$PASS1/$NUMBER1+$PASS1%$NUMBER1*0.50"|bc|awk'{printf"%.2f",$0}')
yxh@Cancer:
~$PASS2=$(echo"$PASS2/$NUMBER2+$PASS2%$NUMBER2*0.50"|bc|awk'{printf"%.2f",$0}')
yxh@Cancer:
~$PASS3=$(echo"$PASS3/$NUMBER3+$PASS3%$NUMBER3*0.50"|bc|awk'{printf"%.2f",$0}')
yxh@Cancer:
~$echo"1301$NUMBER1$PASS1"
130120.00
yxh@Cancer:
~$echo"1302$NUMBER2$PASS2"
130221.00
yxh@Cancer:
~$echo"1303$NUMBER3$PASS3"
130320.50
yxh@Cancer:
~$IFS=$SAVEDIFS
⑶认真学习、理解find和grep(家族)命令,编制两个个性化的文件搜索工具。
while:
>do
>tputclear
>cat<>
>***********************************A:
按文件内容查找文件并显示其路径B:
按文件名查找文件并显示其路径***********************************
>MAYDAY
>echo-e-n"\t请选择AORB:
"
>readCHOICE
>case$CHOICEin
>A)read-p"请输入字符串:
"val
>find.|xargsgrep-ri"$val"-l
>;;
>B)read-p"请输入文件名:
"val
>find.-name"*$val*"
>;;
>*)echo-e"\t\007FAIL!
"
>;;
>esac
>echo-e-n"\tHitthereturnkeytocontinue"
>readDUMMY
>done