shell脚本:脚本Apache_port.sh后接入数字,http的端口就改为此数字

本文介绍了一个Shell脚本,该脚本接受一个数字参数,用于动态更改Apache服务器的HTTP端口。脚本首先确保数字参数不为空,并检查端口是否已被占用。然后,脚本使用sed命令安全地替换配置文件中的端口。注意,脚本中需使用双引号来正确解析变量。执行脚本时需考虑命令执行的优先级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.要求

此脚本后接入数字,http的端口就改为此数字。(假设selinux为关闭状态)

2.代码

在这里插入图片描述

3.结果

在这里插入图片描述

4.思考过程

 - 判断是否安装了apache,没有则进行安装
 - 判断脚本后是否跟了数字,没有就进行报错
 - 当脚本后不为空,判断端口是否正在被使用
 - 替换配置文件中的端口

1 ) 用脚本安装apache,&>/dev/null 表示不显示信息
在这里插入图片描述

2)判断数字是否为空

[ -z "$1"] && {
	echo "Error:not port number.Please give port folowing script"
	exit
}
  • 如果不为空,则还需判断端口是否正在被使用
    注意:" "之间要有``,否则就会出错
[root@xixi ~]# [ -z "`netstat -antlupe | grep 1111`" ] && echo yes || echo no
yes   正确的
[root@xixi ~]# [ -z "netstat -antlupe | grep 1111" ] && echo yes || echo no
no    错误的
[root@xixi ~]# [ -z "`netstat -antlupe | grep 21`" ] && echo yes || echo no
no
[root@xixi ~]# [ -z "`netstat -antlupe | grep 6666`" ] && echo yes || echo no
yes
[root@xixi ~]#

在这里插入图片描述

  • 此时能判断出端口是否正在被使用
    在这里插入图片描述

3)替换端口
一定不要忘记-i插入,如果只使用-c替换的话,原文件不会被修改,只会把替换后文件中的内容显示出来
在这里插入图片描述
难点:
修改后没有变成所修改的数字,而是直接变为了 Listen $1
在这里插入图片描述
这是因为脚本刚开始使用的是单引号,将脚本中第19所在命令改为双引号就好了
在这里插入图片描述

5.注意:

执行优先级
反向单引号表示:里面的内容优先执行
反向单引号与 $ 通用的级别不一样,$在shell里用,``在python里面也能使用
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值