bash脚本编程实例
-
1.写一个脚本,判断当前系统上所有用户的shell是否为可登录的shell(即用户的shell不是/sbin/nologin),分别统计这两类用户的个数(通过字符串比较来实现)
#!/bin/bash cat /etc/passwd|awk -F: 'BEGIN{nologin=0;login=0}{if($NF=="/sbin/nologin") {nologin++} else {login++}} END{print"login",login;print"nologin",nologin}'
-
2.写一个脚本
- 获取当前主机的主机名,保存于hostname变量中
- 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com
-
否则,则显示当前主机名
#!/bin/bash hostname=$(hostname) if [[ $hostname == 'localhost' ]];then hostname www.magedu.com else echo $hostname fi
-
3.写一个脚本,完成如下功能
- 传递一个磁盘设备文件路径给脚本,判断此设备是否存在
-
如果存在,则显示此设备所有的分区信息
#!/bin/bash if [ -b $1 ];then fdisk -l $1 else echo ${1} is not existing. fi
-
4.写一个脚本,完成如下功能,脚本能够接受一个参数
- 如果参数1为quit,则显示退出脚本,并执行正常退出
- 如果参数1为yes,则显示继续执行脚本
-
否则,参数1为其他任意值,均执行非正常退出
#!/bin/bash if [[ $1 == 'quit' ]];then echo "normal exit." exit 0 elif [[ $1 == 'yes' ]];then echo "go on execting." else exit 1 fi
-
5.写一个脚本,完成如下功能,传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一
- 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz
- 如果参数1的值为bzip2,则使用tar和bzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2
- 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz
-
如果其他任意值,则显示错误压缩工具,并执行非正常退出
#!/bin/bash if [[ $1 == 'gzip' ]];then tar -zcvf /backups/etc-20160613.tar.gz /etc elif [[ $1 == 'bzip2' ]];then tar -jcvf /backups/etc-20160613.tar.bz2 /etc elif [[ $1 == 'xz' ]];then tar -Jcvf /backups/etc-20160613.tar.bz2 /etc else echo "error compressing tool." exit 1 fi
-
6.写一个脚本,接受一个路径参数
- 如果为普通文件,则说明其可以被正常访问
- 如果是目录文件,则说明可对其使用cd命令
- 如果为符号链接文件,则说明是个访问路径
-
其他为无法判断
#!/bin/bash if [ -f $1 -a ! -L $1 ];then echo "this is a file,and it can be accessed." elif [[ -d $1 ]];then echo "this is a directory,and it can use cd commond." elif [[ -L $1 ]];then echo "this is a symbolic link,and it is a accessing path." else echo "uknown" fi
-
7.写一个脚本,取得当前主机的主机名,判断如果主机名为空或为localhost,或为“(none)”,则其命名为mail.magedu.com
#!/bin/bash hostname=$(hostname) if [ -z $hostname -o $hostname == 'localhost' -o $hostname == 'none' ];then hostname mail.magedu.com fi
原创文章,作者:N27_xiaoni,如若转载,请注明出处:http://www.178linux.com/85520