1、编写一个 Shell脚本,程序执行时从键盘读入一个目录名,如果用户输入的目录不存在,则提示file does not exist;如果用户输入的不是目录则提示用户必须输入目录名;如果用户输入的是目录则显示这个目录下所有文件的信息。
创建一个shell脚本
[root@cotenos day05]# vim isexit.sh
#!/bin/bash
read -p "请输入一个目录名:" dir
! [ -a $dir ] && echo "file dose not exist";exit
! [ -d $dir ] && echo "必须输入一个目录.";exit
ll $dir
# 保存并退出
给文件田间执行权限
[root@cotenos day05]# chmod +x isexit.sh
执行:
2、写一个脚本,完成以下要求:让用户输入用户名,如果其UID为0,就显示此为管理员;否则,就显示其为普通用户。
输出UID的方法
[root@cotenos ~]# id -u
0
[root@cotenos ~]# echo "$UID"
0
创建脚本文件
[root@cotenos ~]# vim isUID.sh
#!/bin/bash
[ "$UID" -eq 0 ] && echo "管理员用户" || echo "普通用户"
执行脚本
[root@cotenos ~]# chmod +x isUID.sh
[root@cotenos ~]# ./isUID.sh
3、写一个脚本,给定一个用户,判断其UID与GID号码是否一样,如果一样,就显示此用户为“good guy”;否则,就显示此用户为“bad guy”。
[root@cotenos ~]# id -u # 显示UID
0
[root@cotenos ~]# id -g # 显示GID
0
编写脚本
[root@cotenos ~]# vim UID_eq_GID.sh
#!/bin/bash
read -p "请输入一个用户:" user
[ `id -u $user` = `id -g $user` ] && echo "good guy" || echo "bad guy"
运行脚本:
[root@cotenos ~]# chmod +x UID_eq_GID.sh
[root@cotenos ~]# ./UID_eq_GID.sh
4、写一个脚本,给定一个文件,比如/etc/inittab,判断这个文件中是否有空白行;如果有,则显示其空白行数;否则,显示没有空白。
匹配空白行的话,需要使用正则匹配,一行中只用”#“也表示空白行,所以一行中只要有0或1个”#“都表示空行,“?:表示0个或者1个”
[root@cotenos ~]# vim kong.sh
#!/bin/bash
read -p "请输入一个文件名称:" file
num=`cat $file | grep -cE "^#?$"`
[ $num -eq 0 ] && echo "没有空白行" || echo "$num "
执行:
[root@cotenos ~]# chmod +x kong.sh
[root@cotenos ~]# ./kong.sh