写shell脚本的时候,条件判断是最常用的,尤其是刚写shell脚本的时候,一些高级的命令语法用不到,if无处不在。下面这篇文章主要介绍shell脚本语言if条件判断语句的相关信息,有需要的朋友可以参考一下。
:
目录
1.单分支if条件语句1.1示例:判断目录是否存在,如果不存在,则创建2。双分支if条件语句2.1示例:监控并自动重启apache服务脚本3。多分支if条件语句3.1示例:确定用户输入的是文件还是目录4.case条件语句4.1示例:创建启动脚本并让服务命令管理apache4.2示例:创建启动脚本,并
1.单分支if条件语句
然后接下来是满足条件后执行的程序,可以放在[],with之后;分开。你也可以分行书写,
你不需要“;”走吧。
例如:
if[条件判断公式]
然后
程序
船方不负担装货费用
1.1举例:判断目录是否存在,不存在则创建
#!/bin/bash
#日期:2022年4月13日
# Description:if单分支语句示例,判断目录是否存在。
Read -p '请输入要判断的目录:'名称
如果[!-d $name ]
然后
回显“$name目录不存在,正在创建.”
mkdir -p $name
Echo '$name目录已创建'
船方不负担装货费用
回显“$name目录已经存在,正在退出.”
2.双分支if条件语句
if[条件判断公式]
然后
当条件满足时,要执行的程序。
其他
当条件不满足时执行的另一个过程。
船方不负担装货费用
2.1举例:监听并自动重启apache服务脚本
日常工作中,服务器上的服务经常宕机。如果我们对待server monitor不好,服务器中的服务就会宕机,但管理员不会知道。这就是我们可以编写一个脚本来监控本地服务。如果服务停止或关闭,它们可以自动重新启动。以apache为例:
首先,介绍端口扫描命令。
Nmap端口扫描命令,
格式:nmap -sT域名或IP
子选项:
-s扫描
-T扫描所有打开的TCP端口。
nmap扫描后显示的端口必须处于活动状态。
要对脚本使用nmap命令,首先使用yum -y install nmap安装它。
Apache服务也是yum安装。
[root @肖鹏~]# cat autostart.sh
#!/bin/bash
port=$(nmap-sT 192 . 168 . 22 . 222 | grep TCP | grep http | awk ' { print $ 2 } ')
if [ '$port'=='open' ]
然后
echo ' $(date)httpd ok!'/tmp/autostart-acc.log
其他
/etc/RC . d/init . d/httpd start/dev/null echo ' $(date)restart httpd!'/tmp/autostart-err.log
船方不负担装货费用
(首先,使用nmap命令查看apache是否打开,并将其分配给port。
然后做条件判断。如果服务已启动,将当前时间httpd输出到/tmp/autostart-
acc.log .
如果变量port的值不是open,则执行else操作。首先启动apache服务,将启动后的信息输出到bit bucket,然后记录在/tmp /tmp/autostart-err.log中
IP查找端口,但是没有引用DNS,所以会报错DNS不存在,但是不会影响结果。)
3.多分支if条件语句
if[条件判断公式1]
然后
当条件判断公式1成立时,执行程序1。
条件判断公式2
然后
当条件判断公式2成立时,执行过程2。
.(可以添加更多条件)
其他
当所有条件都不满足时,最后执行这个程序。
船方不负担装货费用
3.1举例:判断用户输入的是文件还是目录
#!/bin/bash
#日期:2022年4月13日
#描述:判断文件类型
Read -p '请输入一个文件:' file
if [ -z $file ]
然后
回声错误!输入文件为空。
elif [!-e $file ]
然后
回声错误!输入文件不存在。
elif [ -f $file ]
然后
回显“$file是一个普通文件”
elif [ -d $file ]
然后
回显“$file是一个目录”
其他
Echo '$file是另一种类型的文件'
船方不负担装货费用
4.case条件语句
多分支case条件语句
Case $变量名在
"值1 ")
如果$变量等于值1,则执行程序1。
;
"值2 ")
如果$变量等于值2,则执行程序2。
;
.省略。
*)
如果$变量的值不是上述值,则执行此程序。
;
environmental systems applications center 环境系统应用程序中心
4.1举例:创建启动脚本,让service命令管理apache
[root @肖鹏htdocs]# vim /etc/init.d/apached
#!/bin/bash
# chkconfig: 2345 64 36
#描述:非常快速和可靠的结构化查询语言数据库引擎
httpd=/usr/local/Apache 2/bin/Apache CTL
案例一美元英寸
开始)
$httpd start
;
停止)
$httpd停止
;
重启)
$0停止
睡眠0.05
0美元起步
;
配置测试)
$httpd -t
;
*)
回声用法:$ 0开始|停止|重新启动|配置测试.
;
环境系统应用中心环境系统应用程序中心
4.2举例:创建启动脚本,让service命令管理nginx
[root @肖鹏conf]# vim /etc/init.d/nginx
#!/bin/bash
#作者:刘
#chkconfig: 2345 99 33
#描述:nginx服务器控制工具
ngxc='/usr/local/nginx/sbin/nginx '
ngxc _ fpm='/usr/local/PHP/sbin/PHP-fpm '
案例' $1 '在
开始)
$ngxc -t /dev/null
如果[ $?-eq 0];然后
$ngxc
$ngxc_fpm
echo 'nginx服务启动成功!'
其他
$ngxc -t
船方不负担装货费用
;
停止)
$ngxc -s停止
killall php-fpm
echo 'nginx服务停止成功!'
;
重启)
$0停止
0美元起步
;
重新加载)
$ngxc -t /dev/null
如果[ $?-eq 0];然后
$ngxc -s重新加载
pkill -HUP php-fpm
回声重新加载nginx配置成功!'
其他
$ngxc -t
船方不负担装货费用
;
*)
回声请输入'停止|开始|重新启动|重新加载'
一号出口
环境系统应用中心环境系统应用程序中心
总结
到此这篇关于壳脚本语言之如果条件判断语句的文章就介绍到这了,更多相关壳脚本如果条件判断语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。