Shell 脚本if等

shell练习题2

感谢您能抽出几分钟时间来参加本次答题,现在我们就马上开始吧!

1

写一个脚本,判断某一台主机是否可以ping通,如果可以返回success,如果不可以返回faild

#!/bin/bash read -p "请输入你要检测的主机IP:" ip1 ping -c 1 $ip1 &>/dev/null if [ $? -eq 0 ];then echo "success" else echo "faild" fi

2

在条件测试语句中,写出以下参数的含义:

-gt

-lt

-le

-ge

-le

-ne

大于、小于、小于等于、大于等于、小于等于、不等于

3

报警脚本,要求如下:

根分区剩余空间小于20%

内存已用空间大于80%

向用户alice发送告警邮件

[root@xingdian ~]# echo "邮件正文" | mail -s "邮件主题" [email protected]

gen_free=`df -h|awk NR==2'{print $4}'|awk -F'G' '{print $1}'` gen_total=`df -h|awk NR==2'{print $2}'|awk -F'G' '{print $1}'` free=$(( $gen_free * 100 / $gen_total)) mem_used=`free -m|awk NR==2'{print $3}'` mem_total=`free -m|awk NR==2'{print $2}'` used=$(( $mem_used*100 / $mem_total )) #tused=$(( $gen_used * 100 / $gen_total )) if [ $free -lt 20 ]; then echo "警告,根分区小于20%,请及时处理"|mail -s "root" [email protected] elif [ $used -gt 80 ];then echo "内存大于80%,请及时处理·"|mail -s "root" [email protected] else echo "内存正常"|mail -s "root" [email protected] fi

4

在条件测试语句中,写出以下参数的含义:

-e

-d

-f

-x

-w

文件或目录是否存在、目录是否存在、文件、判断是否有执行权限、写权限

5

写一个脚本,判断vsftpd软件包是否安装,如果没有则自动安装

read -p "请输入你要判断是否安装的软件包:" name rpm -qa | grep $name | grep -v grep | wc -l &>/dev/null if [ $? = 0 ];then echo "你已安装此软件" else echo "$name 软件正在安装...";yum -y install $name &>/dev/null if [ $? -eq 0 ];then echo "$name 软件安装完成!!!" else "" fi fi

6

输入一个文件的绝对路径,判断路径是否存在,而且输出是文件还是目录,如果是字符连接,还得输出是有效的连接还是无效的连接

read -p "请输入文件绝对路径:" path if [ -e "$path" ];then if [ -f "$path" ];then echo "路径存在,是一个文件" elif [ -d "$path" ];then echo "路径存在,是一个目录" elif [ -L "$path" ];then if [ -e "$path" ];then echo "路径存在,是一个有效的字符链接" else echo "路径存在,是一个无效的字符连接" fi fi else echo "路径不存在" fi

7

简述以下break和exit的区别

8

按照要求写脚本:交互模式要求输入一个ip,然后脚本判断这个IP 对应的主机是否能ping 通

read -p "请输入你要检测的IP:" ip1 ping -c 1 $ip1 &>/dev/null if [ $? -eq 0 ];then echo "网络畅通" else echo "网络不通" firead -p "请输入你要检测的IP:" ip1 ping -c 1 $ip1 &>/dev/null if [ $? -eq 0 ];then echo "网络畅通" else echo "网络不通" fi

9

写一个脚本,判断当前主版本是否为7

banben=`cat /etc/os-release|awk NR==2'{print $1}'|awk -F'"' '{print $2}'` if [ $banben = 7 ];then echo "当前主版本为7" else echo "当前主版本不为7" fi

10

写出for循环的语法格式

for i in do done

11

简述以下对于流程控制语句if的理解

if判断语句

12

写一个工具箱脚本,实现以下内容: 1.关闭防火墙 2.关闭selinux 3.创建用户xingdian,并自动生成密码返回用户

13

写一个脚本,利用for循环创建20个用户,并给每个用户设置自定义密码,并将用户和密码单独存放在user.txt文件中

#!/bin/bash for i in user{1..20} do useradd $i && echo "RANDOM" | passwd --stdin $i &>/dev/null echo "$i:$RANDOM" >>/user.txt done

14

使用条件测试写一条命令判断当前用户是否为root,如果是打印“当前用户为超级管理员用户”

if [ $USER = root ]; then echo "The current user is a super administrator" else "" fi

15

写一个脚本把一个目录内的所有空文件都删除,最后输出删除的文件的个数

read -p "请输入你要删除空文件的目录:" mulu kong=`find $mulu -type f -empty | wc -l` delete=`find $mulu -type f -empty -delete` echo "$mulu 下所有空文件已经删除" echo "$mulu 下的空文件数量为 $kong"

16

简述一下while和until循环的特点及区别

17

在条件测试中,-eq的作用是

大于

*:等于

小于

大于等于

18

在条件测试中,-f的作用是

判断是否为目录

*判断是否为文件

判断是否可写

判断是否可读

你可能感兴趣的:(服务器,linux,运维)