快捷搜索:  汽车  科技

linuxshell简单编程(linuxshell脚本编写基础)

linuxshell简单编程(linuxshell脚本编写基础)a、将shell脚本文件所在的目录添加的PATH环境变量中在执行脚本文件之前要让shell找到我们创建的文件test。那么如何让shell找到我们的文件呢。通常用以下两种方法#!/bin/bash(3)将shell命令添加到创建的文件中 并保存退出(4)执行脚本文件

Linux中的脚本其实就类似我们在windows系统中编写的批处理。

linuxshell简单编程(linuxshell脚本编写基础)(1)

编写流程

(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

猜您喜欢: