您的位置:首页 > 运维架构 > Shell

shell的应用练习

2013-05-04 16:38 225 查看
1. 写个从用户接受文件名的shell脚本。如果文件是普通文件,则显示以下信息:

————is an ordinary file-display?
如果答案是‘y’,而且文件是有可读权限的,显示文件,不
然,则显示如下信息并退出:
sorry _______has no read permission.

如果参数是个目录,在用户确认了权限之后显示那个目录
里的文件名。

如果参数不是普通或者目录文件,显示出错信息并退出。

1 echo “enter a file or directory name:”
2 read fname
3 if test -f ${fname}
4 then echo “${fname} is an ordinary file-diaplay?”
5 read ans
6 if test $ans = 'y'
7 then
8 if test -r ${fname}
9 then cat ${fname}
10 else echo “sorry,${fname} has no read permission”
11 fi
12 fi
13 elif test -d ${fname}
14 then echo “${fname} is a directory file – display?”
15 read ans
16 if test $ans = 'y'
17 then
18 if test -r ${fname}
19 then /bin/ls -l ${fname}
20 else echo “sorry,${fname} has no read permission”
21 fi
22 fi
23 else echo “${fname} is neither an ordinary file nor a directory”
24 fi
25

2.写出shell脚本接受两个参数,开始时间和结束时间。然后显示所有在这段时间里登录的用户名。

1 if test -z "$2"
2 then
3 echo "you need to supply the start time and time as parameters"
4 echo "USAGE: $0<start_time><End_Time>"
5 echo "the time should be in hh:mm format –24 hour day"
6 exit
7 fi
8 hour_after=`echo $1|cut -d: -f1`
9 min_after=`echo $1 | cut -d: -f2`
10 total_after=`expr $hour_after \* 60`
11 total_after=`expr $total_after + $min_after`
12 hour_before=`echo $2 | cut -d: -f1`
13 min_before=`echo $2 | cut -d: -f2`
14 total_before=`expr $hour_after \* 60`
15 total_before=`expr $total_before + $min_before`
16 echo "the following users have logged in between $1 and $2"
17 echo "-----------------------------------------------------------"
18 for user in `who | tr -s ' ' | cut -d ' ' -f1,5 | tr ' ' ':' `
19 do
20 hour=`echo $user | cut -d: -f2`
21 min=`echo $user | cut -d: -f3`
22 total=`expr $hour \* 60`
23 total=`expr $total + $min`
24 echo "total=$total total_after=$total_after before=$total_before"
25 if [ $total -ge $total_after -a $total -le $total_before ]
26 then
27 username=`echo $user | cut -d: -f1`
28 echo "${username}"
29 fi
30 done
31

未完待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: