1. 写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin);分别统计这两类用户的个数,通过字符串比较来实现
#! /bin/bash#写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin);#分别统计这两类用户的个数#通过字符串比较来实现##declare NO_LOGIN_SHELL=0declare LOGIN_SHELL=0for i in `cat /etc/passwd | cut -f 1 -d :`; do USR_SHELL=`grep "^$i" /etc/passwd | cut -f 7 -d :` if [[ $USR_SHELL == /sbin/nologin ]];then let NO_LOGIN_SHELL=$NO_LOGIN_SHELL+1 else let LOGIN_SHELL=$LOGIN_SHELL+1 fidoneecho -e "total NO LOGIN SHELL are $NO_LOGIN_SHELL.\ntotal LOGIN SHELL is $LOGIN_SHELL"
2. 写一个脚本
a. 获取当前主机的主机名,保存于hostname变量中
b. 判断此变量的值是否为localhost, 如果是,则将当前主机名修改为www.magedu.com
c. 否则,怎显示当前主机名
#! /bin/bash #a. 获取当前主机的主机名,保存于hostname变量中 #b. 判断此变量的值是否为localhost, 如果是,则将当前主机名修改为www.magedu.com #c. 否则,怎显示当前主机名 # # # _hostname=`hostname` if [[ $_hostname == "localhost" ]]; then hostname www.magedu.com echo $HOSTNAME else hostname fi
3. 写一个脚本
a. 传递一个磁盘设备文件路径给脚本,判断此设备是否存在
b. 如果存在,则显示此设备上所有分区信息
#! /bin/bash [ $# -ne 1 ] && echo "需要一个磁盘设备" && exit 1 if [ -b $1 ]; then if ls /dev/{r,l}* | grep $1;then echo "您输入的为内存或回环设备" exit 100 else fdisk -l $1 fi else echo "没有此磁盘设备,请重新输入" exit 2 fi
4. 写一个脚本,完成如下功能
脚本能够接受一个参数
如果参数1为quit, 则显示退出脚本,并执行正常退出
如果参数1为yes, 则显示继续执行脚本
否则,参数1为其他任意值,均执行非正常退出
#! /bin/bash #写一个脚本,完成如下功能 #脚本能够接受一个参数 #如果参数1为quit, 则显示退出脚本,并执行正常退出 #如果参数1为yes, 则显示继续执行脚本 #否则,参数1为其他任意值,均执行非正常退出 [ $# -ne 1 ] && echo -e "Useage: $0 [quit|yes]\n其他参数均无效" && exit 1 if [[ $1 == quit ]]; then echo "quit script" exit 0 elif [[ $1 == yes ]]; then echo "conuting script" else echo -e "Usage: $0 [quit|yes]\n其他参数均无效" && exit 2 fi
5. 写一个脚本,完成如下功能
传递一个参数给脚本,此参数为gzip, bzip2或者xz三者之一
a. 如果参数 1的值为gzip, 则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160513.tar.gz
b. 如果参数 1的值为bzip2, 则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160513.tar.bz2
c. 如果参数 1的值为xz, 则使用tar和sz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160513.tar.xz
d. 其他任意值,则显示错误压缩工具,并执行非正常退出
#! /bin/bash #写一个脚本,完成如下功能 #传递一个参数给脚本,此参数为gzip, bzip2或者xz三者之一 #a. 如果参数 1的值为gzip, 则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160513.tar.gz #b. 如果参数 1的值为bzip2, 则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160513.tar.bz2 #c. 如果参数 1的值为xz, 则使用tar和sz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160513.tar.xz #d. 其他任意值,则显示错误压缩工具,并执行非正常退出 [ $# -ne 1 ] && echo -e "Usage: $0 [gzip|bzip2|xz], 其他参数均无效" && exit 1 [ -d /backup ] || mkdir -p /backup &> /dev/null case $1 in gzip) tar -zcvf /backup/etc-20170310.tar.gz /etc/* ;; bzip2) tar -jcvf /backup/etc-20170310.tar.bz2 /etc/* ;; xz) tar -Jcvf /backup/etc-20170310.tar.xz /etc/* ;; *) echo -e "Unknow zip tools.\nUseage: $0 [gzip|bzip2|xz]" ;; esac
6. 写一个脚本,接受一个路径参数
a. 如果为普通文件,则说明其可被正常访问
b. 如果是目录文件,则说明可对其使用cd命令
c. 如果为符号链接,则说明是个访问路径
d. 其他为无法判断
#! /bin/bash#写一个脚本,接受一个路径参数#a. 如果为普通文件,则说明其可被正常访问#b. 如果是目录文件,则说明可对其使用cd命令#c. 如果为符号链接,则说明是个访问路径#d. 其他为无法判断[ $# -ne 1 ] && echo -e "Usage: $0 DIRECTORY|FILE|LINKFILE" && exit 1if [ -d $1 ];then echo "$1是一个目录文件,可以对其使用cd命令"elif [ -L $1 ];then echo "$1是一个链接文件,链接的文件为$(ls -l $1 | cut -d ' ' -f 9,10,11)"elif [ -f $1 ];then echo "$1是一个普通文件,可以正常访问"else echo "无法判断此文件属性" exit 3fi
原创文章,作者:JL,如若转载,请注明出处:http://www.178linux.com/70898
评论列表(1条)
赞,几个功能都已经实现了,能给出运行示例会更好~加油~