shell脚本的基础

什么是脚本

我们可以用脚本去安装部署、备份、统计、巡检,检查cpu,磁盘等等一些服务状态。让工作更快,更高效,不容易出错

脚本大概模块

#!/bin/bash  声明解释器
# 安装httpd
yum -y install $httpd
# 启动httpd
systemctl start $httpd

变量

用户变量
作用是在当前的脚本范围去应用
用户可以自定义的变量
变量取名范围大小写字母、数字‘下划线、不能用数字开头
一个具有注脚的文本。变量名区分大小写

引用变量可以
name=Jack
echo $name

//通过交互来定义变量
#!/bin/bash
    read -ep "你叫什么名字:" name
    echo "hello $name!"

这里要注意引号,例如:
’ ’ 内部不可引用变量
" " 内部可以使用变量
`` 会将括起来的内容当成命令执行
$() 会将括起来的内容当成命令执行

环境变量
作用是全局的
环境变量永久生效 和 临时生效

临时生效例如:

[root@localhost ~]# export name=jack
[root@localhost ~]# echo $name
jack

环境临时定义关机重启或者主页刷新,定义的变量就会消失
环境变量永久生效例如:
vim /etc/profile
进入到这个目录下定义
export name=xiaobai
就是环境永久定义变量

[root@localhost ~]# vim /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $name
xiaobai

永久环境变量定义
关机重启和刷新变量都不会消失

系统变量(谨慎使用)
$HOSTNAME
$HOME
$USER
$SHELL
$PATH 默认搜索命令的目录列表

   **特殊变量:**
 $0         脚本的文件名
 $$         脚本产生的PID     
 $1 $2..$n  脚本的参数
 $#         脚本接收到的参数的个数
 $@         获取脚本的所有参数
 $*         获取脚本的所有参数
 $?         上一条命令的返回值,为0时则是命令执行成功

数组
定义一个数组,名字为name
name=(xiaobai lucy jack)
可通过数组的索引来应用元素

echo ${name[0]}
xaiobai
echo ${name[1]}
lucy

也可以更改数组中的某个函数值
name[2]=tom

打印数组中所有的元素

echo ${name[@]} 或者 echo ${name[*]}

打印出数组的元素个数(使用循环时很有用)

 echo ${#name[@]} 或者 echo ${#name[*]} 

判断

什么是判断?
流程控制
对某些值进行判断比如端口等等
使用命令成功了吗,文件存在吗,有内容吗,端口监听了吗等等…
if 条件表达

if [ 1 -gt 2 ];then
   	echo '123'
   else
   	echo '234'
   fi

整数判断

条件表达式:  整数的比较
-gt 大于
-ge 大于等于
-eq 等于
-le 小于等于
-lt 小于
-ne 不等于

逻辑判断

逻辑判断: 与或非
-a 并且
-o 或者
&& 并且
|| 或者
! 非

例如:
监听80端口是否在监听监测

#!/bin/bash
	port=$1
	port_num=$(netstat -ntlp |grep 80|wc -l)
	
	if [ $port_num -eq 0 ];then
	        echo "没有监听"
	else
	        echo "正在监听"
	fi

文件类型的判断

 	  -e  文件存在为真 
      -f  是普通文件为真
      -d  是目录为真
      -L  是链接文件为真
      -z  字符串长度为0为真
      -n  字符串长度不为0为真

      [ -e /tmp/a.txt ]
      [ -f /tmp/a.txt ]
      [ -d /tmp ]
      [ ! -d /opt/1.txt ]
      [ -d /opt/wg ] || mkdir -p /opt/wg

      [ -z $name ]  变量值为空为真
-------------------------------------

前四个判断文件目录是否为真,后两个判断字符串

三级目录## 标题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值