shell小实验
Posted 他和晚风一样温柔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell小实验相关的知识,希望对你有一定的参考价值。
实验1
检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限
我们先创建一个test.sh文件
1.方法一:
2.方法二:
我们创建一个脚本
在里面编写
写好了我们实验一下
我们再给这个权限在实验一下
我们再实验一下
这样我们的脚本就写好了
实验2
提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误
1.我们先写个脚本
2.写入脚本命令
我们实验一下
实验3
用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录
我们先压缩一下文件
我在编写一个脚本
现在我们实验一下
我们去opt目录看一下
实验4
提示用户输入内容,使用if 语句判断输入的内容是否为整
再判断输入的内容是奇数还是偶数
我们写个脚本
我们再实验一下
实验5
用 if 语句判断主机是否存活
先写个脚本
我们实验一下
实验6
用case语句在/etc/init.d/目录中写一个firewalld脚本,并加入到系统服务管理中
使能够使用 service firewalld start|stop|restart|status 来管理firewalld服务,
要求如果命令选项不对,则提示 “用法: $0 {start|stop|status|restart}”。
操作
touch /etc/init.d/firewalld
chmod +x firewalld
ll
vim firewalld
#!/bin/bash
#chkconfig: 35 99 20
#description: Firewalld Service Control Script
#date:2021-05-10
#echo $1
#echo $0
case "$1" in
start)
echo "Starting firewawlld Server..."
systemctl start firewalld
;;
stop)
echo "Stopping firewawlld Server..."
systemctl stop firewalld
;;
restart)
echo "Restarting firewawlld Server..."
systemctl restart firewalld
;;
status)
echo "Firewalld status is ..."
systemctl status firewalld
;;
*)
echo "用法: $0 {start|stop|restart|status}"
esac
#exit 0
使用chkconfig 加入到系统服务管理中:
chkconfig --add firewalld
chkconfig firewalld on #将firewalld 加入开机启动
添加成功后就可以执行:service firewalld start、stop、restart、status
验证:
执行 service firewalld stop 的话,最终传到 /etc/init.d/firewalld 文件的参数就是 stop 。
$0 表示 /etc/init.d/firewalld
$1 表示 start、stop、restart、status
方法二:
也可以用 $0 stop、 $0 start 递归调用自己的服务。
附:
init.d 介绍
1、init.d 目录中存放的是一系列系统服务的管理(启动与停止)脚本。
2、用service命令可执行init.d目录中相应服务的脚本。
例:执行命令“service resin start”,可启动/etc/init.d/resin脚本
3、/etc/init.d是指向/etc/rc.d/init.d的软连接
4、 chkconfig httpd on #将httpd加入开机启动
以上是关于shell小实验的主要内容,如果未能解决你的问题,请参考以下文章