Day31脚本编写规则,判断语句,循环语句与case

什么是脚本?作用?
上午十点设定eth0网卡IP
192.168.1.100/24
192.168.1.254
下午两点设定eth0网卡IP
172.16.1.100/24
172.16.1.254
ifcfg-eth0
vim交互,只能人来操作
echo “” > /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/sysconfig/network-scripts/ifcfg-eth0
cd /etc/sysconfig/network-scripts/
echo “DEVICE=eth0” > ifcfg-eth0
echo “TYPE=Ethernet” >> ifcfg-eth0
echo “ONBOOT=yes” >> ifcfg-eth0
echo “BOOTPROTO=static” >> ifcfg-eth0
echo “IPADDR=192.168.1.100” >> ifcfg-eth0
echo “NETMASK=255.255.255.0” >> ifcfg-eth0
echo “GATEWAY=192.168.1.254” >> ifcfg-eth0
cat ifcfg-eth0
ifdown eth0
ifup eth0
cd /root/Desktop/
vim fixip.sh

#!/bin/bash
cd /etc/sysconfig/network-scripts/
echo "DEVICE=eth0" > ifcfg-eth0
echo "TYPE=Ethernet" >> ifcfg-eth0
echo "ONBOOT=yes" >> ifcfg-eth0
echo "BOOTPROTO=static" >> ifcfg-eth0
echo "IPADDR=192.168.1.100" >> ifcfg-eth0
echo "NETMASK=255.255.255.0" >> ifcfg-eth0
echo "GATEWAY=192.168.1.254" >> ifcfg-eth0
ifdown eth0
ifup eth0

保存退出
chmod +x fixip.sh //fuquan
./fixip.sh
ip addr
cat fixip.sh
公司回随机给你指定不同的IP进行修改
10.1.1.100/24
10.1.1.254
请输入IP地址:
请输入子网掩码:
请输入网关:
变量赋值:

A="hello"
A
echo A         //A
echo $A      //hello
echo "$A world" //hello world

ipaddr=$ip
read -p “please input ipaddr:” IP
10.1.1.1
echo $IP

vim fixip.sh

#!/bin/bash
read -p "please input ipaddr:" IP
read -p "please input netmask:" MASK
read -p "please input gateway:" WAY 
cd /etc/sysconfig/network-scripts/
echo "DEVICE=eth0" > ifcfg-eth0
echo "TYPE=Ethernet" >> ifcfg-eth0
echo "ONBOOT=yes" >> ifcfg-eth0
echo "BOOTPROTO=static" >> ifcfg-eth0
echo "IPADDR=$IP" >> ifcfg-eth0
echo "NETMASK=$MASK" >> ifcfg-eth0
echo "GATEWAY=$WAY" >> ifcfg-eth0
ifdown eth0
ifup eth0

./fixip.sh
10.1.1.100
255.255.255.0
10.1.1.254
ip addr
ip route
//观察一下IP以及子网掩码还有网关已经改变了
if判断语句

if 条件
    then    成立子语句
else    不成立子语句
fi                    //结束语句

vim if.sh

#!/bin/bash
if [ 3 -lt 5 ]
then echo "yes"
fi

chmod +x if.sh
./if.sh
//输出yes

#!/bin/bash
if [ 6 -lt 5 ]
then echo "yes"
fi

./if.sh
//输出无内容

#!/bin/bash
if [ 6 -lt 5 ]
    then echo "yes"
else 
          echo "no"
 fi

./fi.sh
//输出no

#!/bin/bash
read -p "please input a num:" NUM
if [ $NUM -lt 10 ]
	then echo "lt"
elif [ $NUM -eq 10 ]
		then echo "eq"
else echo "gt"
fi

./if.sh
10 //eq
./if.sh
30 //gt
./if.sh
5 //lt
ip addr
ping 12.34.56.79 //通
ping 12.34.56.77 //不通
ping -c2 -i0.2 -W2 12.34.56.79
-c2:发送2个ping包
-i0.2:0.2s间隔时间
ping -c2 -i0.2 -W2 12.34.56.77
ping -c2 -i0.2 -W2 12.34.56.77 &> /dev/null
&>:不管是正确还是错误全部导出
测试主机是否存活:
vim ping.sh


#!/bin/bash
read -p "please input ipaddr:" IP
if `ping -c2 -i0.2 -W2 $IP &> /dev/null`
then echo "$IP is up"
else echo "$IP is down"
fi

chmod +x ping.sh
该脚本只能测试某一IP是否存活,不能测试一个网段IP是否存活
循环语句与case语句(for,while)
for根据取值列表循环
while条件循环
1-10
echo {1…10}
echo {1…100}
for 变量 in 取值列表
do
子语句
done
vim xun.sh

#!/bin/bash
for i in {1..10}
do 
	echo "hello"
done

chmod +x xun.sh
./xun.sh
//输出10个hello
vim xun.sh

#!/bin/bash
for i in {1..10}
do 
	echo $i
done

chmod +x xun.sh
./xun.sh
//输出1到10
while条件
do
子语句
done
vim xun.sh

#!/bin/bash
NUM=0
while [ $NUM -lt 3]
do
	echo $NUM
done

chmod +x xun.sh
./xun.sh
//全是0,不终止
vim xun.sh

#!/bin/bash
NUM=0
while [ $NUM -lt 3]
do
	let NUM++    #写成let NUM=NUM+1也行
	echo $NUM
done

chmod +x xun.sh
./xun.sh
//输出1到3
NUM=0
let NUM++
echo $NUM
let NUM=NUM+1
echo $NUM
./xun.sh
class1:
eth0改为桥接模式
vim /etc/sysconfig/network-scripts/ifcfg-eth0
将BOOTPROTO=dhcp
static改为dhcp
ifdown eth0
ifup eth0
ip addr
eth0:10.0.110.216/24
vim ping.sh

#!/bin/bash
NET=10.0.110.
for IP in {1..254}
do 
	if `ping -c2 -i0.2 -W2 $NET$IP &> /dev/null`
	then echo -e "$NET$IP ip \033[31mup\033[0m"
	else echo -e "$NET$IP ip \033[32mdown\033[0m"
	fi
done

chmod +x ping.sh
./ping.sh
修改为while循环
vim ping.sh

#!/bin/bash
NET=10.0.110.
IP=200
while [ $IP -lt 254 ]
do 
	let IP=IP+1
	if `ping -c2 -i0.2 -W2 $NET$IP &> /dev/null`
	then echo -e "$NET$IP ip \033[31mup\033[0m"
	else echo -e "$NET$IP ip \033[32mdown\033[0m"
	fi
done

chmod +x ping.sh
./ping.sh
case语句
./case.sh centos
输出redhat
./case.sh redhat
输出centos
./case.sh XXXX
useage:case.sh{redhat|centos}
vim case.sh

case $1 in
redhat)
		echo "centos"
		;;
centos)
		echo "redhat"
		;;
*)
		echo "Useage : $0 {redhat | centos }"
esac     

esac是结束符
chmod +x case.sh
./case.sh
./case.sh kdjfkjk
./case.sh
./case.sh redhat
./case.sh centos
case 变量 in
模式1)
子语句
;;
*)
子语句
;;
easc
函数:将一部分代码存储到一个变量中
设计一个函数名字叫做A
运行A的时候屏幕出现ok
A(){
echo ok
echo yes
return 0
}
A
echo $? //查看上一次指令输出的成果也就是返回值0
vim case.sh

redhat(){
echo centos
return 0
}
centos(){
echo redhat
return 0
}
case $1 in
redhat)
		redhat
		;;
centos)
		centos
		;;
*)
		echo "Useage : $0 {redhat | centos }"
esac     

./case.sh redhat
./case.sh centos
service httpd start
service httpd dddd ?//Usage
service httpd stop
cat case.sh
find /etc -name httpd
/etc/rc.d/init.d/httpd
cd /etc/init.d/ #启动和关闭httpd,httpd启动搅拌方便使用
ls
vim httpd
cd /usr/local/
ls
cd webserver/
cd …
cd nginx
cd sbin/
./nginx
如何永久启动nginx?
httpd永久启动?
chkconfig --list httpd
chkconfig --list nginx //找不到nginx
nginx启动脚本:
cd /etc/init.d #复制启动命令存在的/usr/local/nginx/bin路径
vim nginxd
#!/bin/bash #这一行不写也能运行成功,原因:操作系统本身用的就是/bin/bash这个解释器,若用其他解释器不屑这一行就会失败,所以需要写这一行
chmod +x nginxd
vim nginxd

nginx=/usr/local/nginx/sbin/nginx
start(){
echo "nginx starting ... [ ok ] "
$nginx
}
start

记得关闭apache:/etc/init.d/httpd stop
/etc/init.d/nginxd //ok
ss -antpl | grep nginx
vim nginxd

nginx=/usr/local/nginx/sbin/nginx
start(){
echo "nginx starting ... [ ok ] "
$nginx
}
status(){
if `ss -antpl | grep nginx > /dev/null`
then echo "nginx starting ..."
else echo "nginx stoping ..."
fi
}
stop(){
echo "nginx stoping ... [ ok ]"
$nginx -s stop
}
stop
status

./nginxd
./nginxd #报错是因为已经关闭了,如果再关闭就会报错
vim nginxd
start
vim nginx

case $1 in
start)
	start
	;;
stop)
	stop
	;;
status)
	status
	;;
restart)
	stop
	start
	;;
*)
echo "Useage : $0 {start|stop|status|restart}"
esac

./nginxd
/etc/init.d/nginxd start
/etc/init.d/nginxd status
/etc/init.d/nginxd stop
/etc/init.d/nginxd status
/etc/init.d/nginxd restart
/etc/init.d/nginxd status
chkconfig --list | grep nginx #过滤一下有无nginx
why没有?因为系统自带的计入了,自己写的没识别
vim httpd
#chkconfig - 85 15
vim nginxd
第二行写:

# chkconfig: - 84 18
# description: nginx script

chkconfig --list nginxd //meiyou
chkconfig --add nginxd
chkconfig --list nginxd
chkconfig --level 5 nginxd on
reboot
/etc/init.d/nginx status
ss -antpl | grep 80

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为前端工程师滴小小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值