Shell条件练习题
Shell条件练习题
- Shell条件练习题
- 1.检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限
- 2.提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误
- 3.用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录
- 4.提示用户输入内容,使用if 语句判断输入的内容是否为整数。
- 5.根据上一题再判断输入的内容是奇数还是偶数。
- 6.用if 语句判断主机是否存活
- 7.用case语句在/etc/init.d/目录中写一个firewalld脚本,并加入到系统服务管理中使能够使用 service firewalld start|stop|restart|status 来管理firewalld服务,要求如果命令选项不对,则提示 “用法: $0 {start|stop|status|restart}”。
1.检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限
#!/bin/bash
[ -f ~/test.sh ]
if [ $? -eq 0 ]
then
echo "test.sh文件存在于家目录中"
[ -x ~/test.sh ]
if [ $? -eq 0 ]
then
echo "test.sh文件具有执行权限"
else
echo "test.sh文件不具有执行权限"
fi
else
echo "test.sh文件不存在于家目录中"
fi
2.提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误
#!/bin/bash
read -p "请输入您100米赛跑的秒数:" second
if [ $second -gt 0 -a $second -le 10 ]
then
echo "恭喜进入选拔赛"
read -p "请输入您的性别(男/女):" sex
if [ $sex = 男 ]
then
echo "您将进入男生组继续比赛"
elif [ $sex = 女 ]
then
echo "您将进入女生组继续比赛"
else
echo "输入错误,请重新输入:"
fi
elif [ $second -gt 10 ]
then
echo "很遗憾,您被淘汰了"
else
echo "输入错误,请重新输入:"
fi
3.用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录
#!/bin/bash
case $jieya in
*.tar.gz)
if [ -f $jieya ]
then
tar -zxvf $jieya -C /opt &> /dev/null
echo "$jieya 文件解压成功"
else
ehco "$jieya 压缩文件不存在"
fi
;;
*.tar.bz2)
if [ -f $jieya ]
then
tar -jxvf $jieya -C /opt
echo “$jieya 文件解压成功”
else
echo "$jieya 压缩文件不存在"
fi
;;
*)
echo "文件名输入错误"
;;
esac
4.提示用户输入内容,使用if 语句判断输入的内容是否为整数。
#!/bin/bash
read -p "请输入一个整数:" num
expr $num + 0 &> /dev/null
if [ $? -eq 0 ]
then
echo "您输入的$num 是一个整数"
else
echo "您输入的$num 不是一个整数"
fi
5.根据上一题再判断输入的内容是奇数还是偶数。
#!/bin/bash
read -p "请输入一个整数:" num
expr $num + 0 &> /dev/null
if [ $? -eq 0 ]
then
echo "您输入的$num 是一个整数"
else
echo "您输入的$num 不是一个整数"
fi
expr ${num} % 2 &> /dev/null
if [ $? -ne 0 ]
then
echo "您输入的$num 是一个偶数"
else
echo "您输入的$num 是一个奇数"
fi
6.用if 语句判断主机是否存活
#!/bin/bash
ping -c 3 -i 0.5 -w 2 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "$1 is online!"
else
echo "$1 is offline!"
fi
7.用case语句在/etc/init.d/目录中写一个firewalld脚本,并加入到系统服务管理中使能够使用 service firewalld start|stop|restart|status 来管理firewalld服务,要求如果命令选项不对,则提示 “用法: $0 {start|stop|status|restart}”。
#!/bin/bash
read -p "输入start|stop|status|restart:来管理防火墙:" firewalld
case $firewalld in
"start")
systemctl start firewalld
echo "防火墙已开启"
;;
"stop")
systemctl stop firewalld
echo "防火墙已关闭"
;;
"restart")
systemctl restart firewalld
echo "防火墙已重启"
;;
"status")
systemctl status firewalld
echo "防火墙状态查看"
;;
*)
echo "用法:$0{start|stop|status|restart}"
;;
esac
Shell条件练习题的更多相关文章
- shell条件测试test
shell条件测试可以通过以下两种方式: test 参数 测试内容 [ 参数 测试内容 ] 一.测试文件类型: test -e 文件名 (测试文件是否存在) [ - ...
- shell 条件语句
shell 条件语句 #!/bin/bash # 条件语句 NUM1=100 NUM2=200 if (($NUM1 > $NUM2));then echo "$NUM1 greate ...
- shell基础练习题
shell 基础练习题 1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 #!/bin ...
- shell条件测试语句实例-测试apache是否开启
终于理解了shell条件测试语句"!="和"-n"的用法区别,于是有了如下的shell脚本,做为练习. 第一种方法:测试apache是否开启?字符串测试 #!/ ...
- Shell循环练习题
Shell循环练习题 目录 Shell循环练习题 1.计算从1到100所有整数的和 2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和 3.求从1到100所有整数的偶数和.奇数和 ...
- [Shell]条件判断与流程控制:if, case, for, while, until
---------------------------------------------------------------------------------------------------- ...
- shell条件测试
文件状态测试-b filename : 当filename 存在并且是块文件时返回真(返回0)-c filename : 当filename 存在并且是字符文件时返回真-d pathname : 当p ...
- Shell条件与测试
分类参考 文件状态测试 -b filename 当filename 存在并且是块文件时返回真(返回0) -c filename 当filename 存在并且是字符文件时返回真 -d pathname ...
- shell条件判断if中的-a到-z的意思
[ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则 ...
随机推荐
- SpringBoot中JPA使用动态SQL查询
https://www.jianshu.com/p/f72d82e90948 可以重点关注方法二,把原生sql传入数据库去查询 好处是:更加灵活坏处是:拼接sql比较痛苦,也容易出问题,比如拼接的sq ...
- Qos 0/1/2的理解
Qos 0/1/2的理解 Qos 0 最多一次的传输 消息是基于TCP/IP网络传输的.没有回应,在协议中也没有定义重传的语义.消息可能到达服务器1次,也可能根本不会到达. Qos 1 至少一次的传输 ...
- MongoDB与微服务
1. 微服务的优势 * 开发速度快 * 变化响应快 * 易维护 * 扩容简单2. 微服务架构设计要素 * 服务解耦(Decouple) * HTTP API - 简单接口(Dumb Pipes) * ...
- [学习笔记] Oracle集合运算、内连接、外连接、伪列
集合运算 INTERSECT(交集),返回两个查询共有的记录. UNION ALL(并集重复),返回各个查询的所有记录,包括重复记录. UNION(并集不重复),返回各个查询的所有记录,不包括重复记录 ...
- linux 之 expect 交互操作(自动输入密码)
场景 需要实现执行一个命令,并自动输入密码. 实现 通过expect命令实现 spawn 交互程序开始后面跟命令或者指定程序expect 获取匹 ...
- 初识python:tkinter 实现 弹球小游戏(面向对象)
使用蹩脚式面相对象,实现弹球小游戏(非面向对象实现,主要介绍tk基础用法). #!/user/bin env python # author:Simple-Sir # time:2020/8/7 10 ...
- dos 之 for循环(小“病毒”)
需求: 1.自动在D盘下创建test2019文件夹: 2.自动在test2019下面创建100个文件,并写入"这是文件几的内容!": 3.自动打开100个CMD运行窗口(保持打开状 ...
- Pytest_fixture(9)
什么是fixture fixture是pytest特有的功能,使用装饰器 @pytest.fixture 标记的函数在其他函数中能被当作参数传入并被调用. fixture有明确的名字,在其他函数,模块 ...
- Flask_cookie和session(五)
一.cookie和session介绍 cookie 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现 ...
- Java 总结 数据底层原理 【包括 ArrayList、LinkedList、hash table、HashMap、Hashtable、ConcurrentHashMap、hash code、HashSet、LinkedHashMap、LinkedHashSet】
1.ArrayList (1)底层是由动态数组实现的[使用了List接口]. (2)动态数组是长度不固定,随着数据的增多而变长. (3)如果不指定,默认长度为10,当添加的元素超过当前数组的长度时,会 ...