1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;
#!/bin/bash for line in `cat /etc/passwd`;do if [[ `echo $line | awk -F: '{print $7}'` == '/sbin/nologin' ]];then n=$[++n] else s=$[++s] fi done echo "shell is /sbin/nologin $n" echo "shell is not /sbin/nologin $s"
2、写一个脚本
- (1) 获取当前主机的主机名,保存于hostname变量中;
- (2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;
- (3) 否则,则显示当前主机名;
#!/bin/bash hostname=`hostname` if [[ ${hostname} == 'localhost' ]];then hostname www.magedu.com sed -i 's@\(^HOSTNAME=\).*/\1www.magedu.com/g' /etc/sysconfig/network hostname else echo ${hostname} fi
3、写一个脚本,完成如下功能
- (1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;
- (2) 如果存在,则显示此设备上的所有分区信息;
#!/bin/bash check_parm(){ if [ $# -lt 1 ];then echo "at least one disk file" exit 1 fi } show_patitions(){ for disk in "$@";do if [ -b ${disk} ];then fdisk -l ${disk} else echo "no such ${disk} disk!" fi done } check_parm "$@" show_patitions "$@"
4、写一个脚本,完成如下功能
脚本能够接受一个参数;
- (1) 如果参数1为quit,则显示退出脚本,并执行正常退出;
- (2) 如果参数1为yes,则显示继续执行脚本;
- (3) 否则,参数1为其它任意值,均执行非正常退出;
while true;do read -p "please choose(yes|no|quit):" parm case $parm in quit) echo "bye!" exit ;; yes) continue ;; *) exit 2 esac done
5、写一个脚本,完成如下功能
传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;
- (1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz;
- (2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2;
- (3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz;
- (4) 其它任意值,则显示错误压缩工具,并执行非正常退出;
#!/bin/bash if [ $# -lt 1 ];then echo "at least one parm..." exit 1 fi mkdir -p /backups case $1 in gzip) tar -czf /backups/etc-`date +%F`.tar.gz /etc ;; bzip2) tar -cjf /backups/etc-`date +%F`.tar.bz2 /etc ;; xz) tar -Jcf /backups/etc-`date +%F`.tar.xz /etc ;; *) echo "error compress tools" exit 2 ;; esac
6、写一个脚本,接受一个路径参数:
- (1) 如果为普通文件,则说明其可被正常访问;
- (2) 如果是目录文件,则说明可对其使用cd命令;
- (3) 如果为符号链接文件,则说明是个访问路径;
- (4) 其它为无法判断;
#!/bin/bash if [ $# -lt 1 ];then echo "at least one parm..." exit 1 fi if [ -f $1 ];then echo "$1 能被正常访问" elif [ -d $1 ];then echo "$1 可以使用cd命令" elif [ -l $1 ];then echo "$1 是个访问路径" else echo "无法判断" fi
原创文章,作者:N25_随心,如若转载,请注明出处:http://www.178linux.com/70549
评论列表(1条)
不错,连脚本函数都已经用的很熟练了。