下面的例子基本上都是上面的知识点,比较扩展一点的就是awk
命令的用法,下面代码仅作参考,写的不好,请见谅;错误的地方烦请指出,不胜感激!
1、测试Apache服务是否启动,若没有启动,则启动Apache服务
1 2 3 4 5 6 7
| #! /bin/sh web=`/usr/bin/pgrep httpd` if [ "ABC$web" = "ABC" ] then /etc/init.d/httpd start fi
|
2、判断某个文件属于什么类型的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #! /bin/sh f [ -d $1 ] then echo "这是一个目录"; elif [ -f $1 ] then echo "这是个普通文件" elif [ -c $1 ] then echo "这是字符特殊文件" elif [ -b $1 ] then echo "这是块特殊文件" else echo "我也不知道这是啥玩意" fi
|
3、踢出用户的脚本
1 2 3 4 5 6 7 8 9 10 11 12
| #! /bin/sh username=$1 /usr/bin/w > whoIsOnline userString=`/usr/bin/awk -v user=$username '{if($1 == user) print $1}' ./whoIsOnline` if [ "ABC$userString" = "ABC" ] then echo "$1 is not online" else killId=`/usr/bin/ps aux | /usr/bin/grep $username | /usr/bin/eprep -v grep |/usr/bin/awk {print $2}` kill $killId fi
|
4、显示用户的信息
1 2 3 4 5 6 7 8 9
| #! /bin/sh user=$1 if [ "ABC$user" = "ABC" ] then echo "请在命令行后面输入要查询的用户名!" else /usr/bin/grep ^$1: /etc/passwd | /usr/bin/awk -F ":" '{print "用户ID为"$3 ; print"用户组ID为"$4 ; print "你其实是"$5 ; print "你的主目录为"$6 ; print"你的默认Shell为"$7}' fi
|
5、加减乘除的脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #! /bin/sh case $2 in +) echo "$1 + $3 = `expr $1 + $3` " ;; -) echo "$1 - $3 = `expr $1 - $3`" ;; \*) echo "$1 * $3 = `expr $1 \* $3`" ;; /) if [ $3 = 0 ] then echo "除数不能为0" exit else echo "$1 / $3 = `expr $1 / $3`" fi ;; *) echo "您的输入不符合规范,请重新输入" esac
|
6、打印出1到10之间的平方数
1 2 3 4 5 6 7 8 9
| #! /bin/sh i=1 while [ $i -le 10 ] do echo "$i 的平方为:`expr $i \* $i`" i=`expr $i + 1` done
|
1 2 3 4 5 6
| #! /bin/sh for i in {1..10} do echo "$i 的平方为:`expr $i \* $i`" done
|
7、累加求和(使用shift命令)
1 2 3 4 5 6 7 8 9
| #! /bin/sh sum=0 while [ $# -gt 0 ] do sum=`expr $sum + $1` shift done echo "总和为:$sum"
|