Shell条件练习题

目录

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条件练习题的更多相关文章

  1. shell条件测试test

    shell条件测试可以通过以下两种方式: test   参数    测试内容 [ 参数  测试内容 ] 一.测试文件类型: test  -e   文件名          (测试文件是否存在) [ - ...

  2. shell 条件语句

    shell 条件语句 #!/bin/bash # 条件语句 NUM1=100 NUM2=200 if (($NUM1 > $NUM2));then echo "$NUM1 greate ...

  3. shell基础练习题

    shell 基础练习题 1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 #!/bin ...

  4. shell条件测试语句实例-测试apache是否开启

    终于理解了shell条件测试语句"!="和"-n"的用法区别,于是有了如下的shell脚本,做为练习. 第一种方法:测试apache是否开启?字符串测试 #!/ ...

  5. Shell循环练习题

    Shell循环练习题 目录 Shell循环练习题 1.计算从1到100所有整数的和 2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和 3.求从1到100所有整数的偶数和.奇数和 ...

  6. [Shell]条件判断与流程控制:if, case, for, while, until

    ---------------------------------------------------------------------------------------------------- ...

  7. shell条件测试

    文件状态测试-b filename : 当filename 存在并且是块文件时返回真(返回0)-c filename : 当filename 存在并且是字符文件时返回真-d pathname : 当p ...

  8. Shell条件与测试

    分类参考 文件状态测试 -b filename 当filename 存在并且是块文件时返回真(返回0) -c filename 当filename 存在并且是字符文件时返回真 -d pathname ...

  9. shell条件判断if中的-a到-z的意思

    [ -a FILE ]  如果 FILE 存在则为真.  [ -b FILE ]  如果 FILE 存在且是一个块特殊文件则为真.  [ -c FILE ]  如果 FILE 存在且是一个字特殊文件则 ...

随机推荐

  1. Java中两个或多个byte数组合并及int类型转数组

    Java中两个或多个byte数组合并及int类型转数组 // 用list好处是可以未知多个? public static byte[] test(List<byte[]> values) ...

  2. java运算符2

    续: 位运算符(<<,>>,>>>) 1.<<: 3<<2,二进制左移2位,右边用0补齐       3的二进制:00000000 0 ...

  3. Python_string.Template的使用

    Template是python string提供的一个字符串模板功能.主要用于文本处理 from string import Template s = Template('$who 在 $do') t ...

  4. 初识python:斐波拉契数(列表获取)

    使用 列表 获取斐波拉契数,代码如下: n = int(input('您想获取前几个斐波拉契数?\n')) li = [] for i in range(n): if i <= 1: li.ap ...

  5. 通过了解Servlet和Http之间的关系,了解web中http通信使用(二)

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512399401825075719/ 1.<Servlet简单实现开发部署过程> 2.<Serv ...

  6. Feign的应用

    一.定义 可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样 它集成了ribbon.hystrix.eureka组件 Feign的日志级别需要自定义,因为日志是单独的 ...

  7. Linux驱动实践:中断处理函数如何【发送信号】给应用层?

    作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...

  8. Python多环境管理神器(pyenv)

    前面我们已经介绍了,python中两种最基础的虚拟环境管理工具,venv和virtualenv,其中virtualenv可以和virtualenvwrapper配合使用.详情请参考:https://w ...

  9. 在Django中使用zerorpc

    在Django中使用zerorpc 前言 随着系统架构从集中式单点服务器到分布式微服务方向的迁移,RPC是一个不可回避的话题.如何在系统中引入对开发者友好,性能可靠的RPC服务是一个值得深思的问题. ...

  10. MyCms 自媒体 CMS 系统 v2.8,支持织梦数据导入

    MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现. MyCms 基于Apache2.0开源协议发布,免费且不限制商业使用,欢迎持续关注我们. V2.8 ...