1、判断/etc/inittab文件是否大于100行,如果大于,则显示”/etc/inittab is a big file.”否者显示”/etc/inittab is a small file.”
1 line=`wc -l /etc/inittab|cut -d'' -f1` 2 3 if [ $line -gt 100];then 4 echo"/etc/inittab is a big file" 5 else 6 echo"/etc/inittab is a small file" 7 fi
2、给定一个用户,来判断这个用户是什么用户,如果是管理员用户,则显示“该用户为管理员”,否则显示“该用户为普通用户”
1 两个方法: 2 1、whoami(显示当前用户的用户名) 3 4 if [`whoami`=`root`];then 5 echo"该用户为管理员用户" 6 else 7 echo"该用户为普通用户" 8 9 2、id -u(显示当前用户的uid) 10 11 if[`id -u` -eq 0];then 12 echo"该用户为管理员用户" 13 else 14 echo"该用户为普通用户" 15 16 17 3、判断某个文件是否存在 18 19 if[-f "文件名称"];then 20 echo"文件存在" 21 else 22 echo"文件不存在" 23 24 #!/bin/bash 25 #判断文件是否存在 26 27 if [$# -lt 1];then 28 echo"At least one argument" 29 exit 1 30 fi 31 32 if[-e $1];then 33 echo"cunzai" 34 else 35 echo"bucunzai" 36 37 fi
4、判断当前系统上是否有用户的默认shell程序是否为bash程序,如果有,就显示有多个这类用户,否则就显示没有这类用户;【并且显示出那些用户是bash】
1 #!/bin/bash 2 #判断用户的默认shell程序类型 3 4 declare -i sum=`grep "/bin/bash" /etc/passwd|wc -l` 5 6 if grep "/bin/bash$" /etc/passwd &> /dev/null;then 7 echo"存在$sum个用户,shell程序为/bin/bash" 8 grep "/bin/bash$" /etc/passwd|cut -d: -f1 9 exit 0 10 else 11 echo"没有这个用户" 12 exit 1 13 fi
5、写出一个脚本程序,给定一个文件,比如:/etc/inittab a、判断这个文件中是否有空白行? b、如果有,则显示其空白行的行号,否则显示没有空白行
1 #!/bin/bash 2 # 3 4 B=`grep -n "^[[:space:]]*$" /etc/inittab|wc -l` 5 C=`grep -n "^[[:space:]]*$" /etc/inittab|cut -d: -f1` 6 7 if[$B -eq 0];then 8 echo"没有空白行" 9 else 10 echo"有空白行,空白行为$C行"
6、写一个脚本程序,给定一个用户,判断其UID与GID是否一样,如果一样,就显示该用户为“good guy”,否则显示为“bad guy”
1 #!/bin/bish 2 for i in $(cat /etc/passwd);do 3 4 if [ `cut -d: -f3 $i` -eq `cut -d: -f4 $i` ];then 5 echo"good guy" 6 exit 0 7 else 8 echo"bad guy" 9 exit 1 10 fi 11 12 done
7、写一个脚本程序,给定一个用户,获取其密码警告期限;然后判断用户最近一次修改密码的时间距离今天是否已经小于警告期限;
1 #/etc/passwd /etc/shadow /etc/group /etc/gshadow 2 #用户 用户密码 组 组密码 3 4 #!/bin/bash 5 6 W=`grep "abc" /etc/shadow | cut -d: -f6` 7 S=`data+%s` 8 T=`expr $S/86400` 9 L=`grep "^abc" /etc/shadow | cut -d: -f5` 10 N=`grep "^abc" /etc/shadow | cut -d: -f3` 11 SY=$[$L-$[$T-$N]] 12 13 if [$SY -lt -$W];then 14 echo"worning" 15 else 16 echo"ok" 17 fi
8、判断命令历史中历史命令的总条目是否大于1000,如果大于,则显示“some command will gone”,否则显示OK
1 #!/bin/bash 2 3 s=`history|awk'{print $1}'|tail -1` 4 if [ $s -gt 1000 ];then 5 echo"gone" 6 exit 0 7 else 8 echo"ok" 9 fi
9、给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”
1 #!/bin/bash 2 3 read -t 5 -p "请输入一个文件:" filename //-t 等待时间 4 echo #默认用来换行 5 6 if [-z $filename];then 7 echo"eg./etc/fstab" 8 exit 8 9 fi 10 11 if [-f $filename];then 12 echo"$filename是一个普通文件" 13 exit 0 14 elif [-d $filename];then 15 echo"$filename是一个目录文件" 16 exit 0 17 else 18 echo"无法识别" 19 exit 1 20 fi
10、写一个脚本,能接受一个参数(文件路径),判断这个参数如果是一个存在的文件就显示“ok”,否则显示“No such file”
1 #!/bin/bash 2 # 3 4 read -p "请输入一个文件的路径:"filename 5 6 if [-e $filename];then 7 echo"ok" 8 else 9 echo"meiyouwenjian" 10 fi
11、写一个脚本,给脚本传递两个参数,显示两则之和和两者之积
1 #!/bin/bash 2 # 3 4 echo $[$1+$2] 5 echo $[$1*$2]