网站首页 > 精选教程 正文
Linux中的脚本其实就类似我们在windows系统中编写的批处理。
编写流程
(1)使用编辑器(如vim)创建一个文件test.sh,文件后缀为.sh。
(2)在第一行指定要使用的shell 格式如下
#!/bin/bash
(3)将shell命令添加到创建的文件中,并保存退出
(4)执行脚本文件
在执行脚本文件之前要让shell找到我们创建的文件test。那么如何让shell找到我们的文件呢。通常用以下两种方法
a、将shell脚本文件所在的目录添加的PATH环境变量中
b、在命令提示符后用绝对或者相对文件路径用来引用shell脚本
添加运行权限
- chmod +x test.sh
执行(在当前目录下)
- ./test.sh
变量赋值
在shell脚本中我们可以使用的变量有以下两种
a、环境变量
b、用户自定义变量
————————————————
#!/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 "NATMASK=$MASK" >> ifcfg-eth0
echo "GATEWAY=$WAY" >> ifcfg-eth0
ifdown eth0
ifup eth0
————————————————
注:
IP,MASK,WAY顾名思义就是我们定义的变量了,我们给其赋值,再通过$IP,$MASK,$WAY调出它所表示的值(字符串)
———————
read指令 结合我们的变量,就可以实现将用户输入的值赋给变量的过程
结构:
read -p "提示语 " 变量
———————
添加变量之后,echo后面必须是双引号,不能是单引号了,引用变量前面不要忘了加$
————————————————
if判断语句
———————
单分支结构
if 条件
then 成立的子语句
fi
———————
双分支结构
if 条件
then 成立的子语句
else 不成立的子语句
fi
———————
多分支结构
if 条件
then 成立子语句
elif 条件
then 成立子语句
else 不成立的子语句
fi
————————————————
#!/bin/bash
read -p "please input a num:" NUM
if [ $NUM -lt 5 ]
then echo "lt"
elif [ $NUM -eq 10 ]
then echo "eq"
else echo "gt"
fi
————————————————
#!/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
————————————————
循环语句 for wile
for和wile的区别
for 根据循环的次数(取值列表)循环
wile 根据条件循环
————————
for格式
for 变量 in 取值列表
do
子语句
done
—————————
wile格式
while 条件
do
子语句
done
—————————
检测内网主机存活状态【10.0.110.0/24】
————————————————
#!/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 is \033[31mup\033[0m"
else echo -e "$NET$IP is \033[32mdown\033[0m"
fi
done
————————
#!/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 is \033[31mup\033[0m"
else echo -e "$NET$IP is \033[32mdown\033[0m"
fi
done
————————————————
case格式
case 变量 in
模式1)
子语句
;;
*)
子语句
;;
esac
—————————
函数定义
函数名(){
}
调用:函数名
—————————
实例解析:Nginx自启动脚本
#!/bin/bash
# chkconfig: - 85 15
# description:Nginx
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
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage :$0 {start|stop|restart}"
esac
————————————————
- chkconfig --add nginxd
默认都是关闭的off
- chkconfig --list nginxd
我们将5级别打开on
- chkconfig --level 5 nginxd on
接下来,我们重启操作系统
- reboot
猜你喜欢
- 2025-06-19 35张最新2025年企业所得税汇算清缴年度纳税申报表模板(带公式)
- 2025-06-19 安全生产标准化全套资料模版(947页)
- 2025-06-19 超全完整版手工账电子表单模板汇总,适合中小企业财务会计,收藏
- 2025-06-19 在哪下载大学ppt模板?这四款软件一定要来看看
- 2025-06-19 10个顶级的office学习网站,5天让你菜鸟变大神,月薪过万不用愁
- 2025-06-19 你一直在找的矢量小人的素材,这个网站一大把!赶紧偷偷私藏起来
- 2025-06-19 你的妇女节PPT有了!分享三个免费的PPT下载方式
- 2025-06-19 提高PPT效率的5个专用网站,阿里这款三维图标素材,免费下载!
- 2025-06-19 PPT想要高大上?6大免费高清图片下载网站帮你大忙!
- 2025-06-19 各种ppt模板可以在哪免费下载?这些方法快来试试
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)