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里面也能使用