awk shell 父目录_day43-Shell编程基础

6003b540ad50535203e42ee72a1a54d4.png

格式

#!/bin/bash
#!幻数 指定脚本用的命令解释器
执行脚本
sh
sh +x

1、为什么要学习shell编程?

Linux系统中会大量的使用Shell,工作中我们也需要自动化实现业务,例如:自动备份、监控、自动安装服务

Shell编程是Linux运维人员必须要会编程语言。最简单的编程语言。

编程也是运维人员必须具备的本领:

Shell、python是运维人员必须具备的本领

2、什么是Shell?

shell就是一个解释器(翻译官),命令行的命令以及脚本都会通过shell解释,传给操作系统,处理后在输出给用户。

3、Shell的分类

/bin/sh、/bin/bash、/usr/bin/sh、/usr/bin/bash

4、CentOS7默认脚本是Shell

[root@zhang ~]# echo $SHELL
/bin/bash

5、什么是Shell脚本?

程序、命令放入文件里执行,这个文件称之为Shell脚本文件。

工作中最多的编程写脚本,存放在文件里。

二、变量

1.变量

方便脚本里面进行重复使用

命名规则
看见变量名称 识别变量作用
不能以数字开头
变量分类
局部变量(普通变量)
IP=10.0.0.200
time=2019-01-01
全局变量(环境变量)
系统创建
在整个系统中生效
大部分地方意思一样
一般是大写
特殊变量
$? 数字 $# $*

2.局部变量(普通变量)

36dab75e8926ada99f8a3b32b964efaf.png

3.引号系列

56828e91e3aa4a83fee33a58d02da0ef.png

4.特殊变量

65954b1624c7492910b75bd70ebef87c.png

5.局部变量和全局变量区别:

[root@m01 /server/scripts]# LIDAO=996
[root@m01 /server/scripts]# 
[root@m01 /server/scripts]# echo $LIDAO
996
[root@m01 /server/scripts]# cat show.sh 
#!/bin/bash
echo $LIDAO
[root@m01 ~]# sh show.sh  执行脚本为空

[root@m01 ~]# 
[09:17 root@m01 ~]#  export LIDAONB  添加全局变量
[09:22 root@m01 ~]# echo $LIDAONB
666
[09:22 root@m01 ~]# sh show.sh 
666

6.局部变量和全局变量区别

简书​links.jianshu.com

5ac808a9a438a28efeeb17b43895c6e9.png

a2d11c5e43461a2996007fe016c6215b.png

7.awk的 -v 参数

[09:49 root@m01 ~]# x=10
[09:49 root@m01 ~]# y=99
[09:49 root@m01 ~]# echo $x
10
[09:49 root@m01 ~]# echo $y
99
[09:49 root@m01 ~]# awk 'BEGIN{print $x/$y}'
awk: cmd. line:1: fatal: division by zero attempted
[09:49 root@m01 ~]# awk -vn1=10 -vn2=99 'BEGIN{print n1/n2}'
0.10101
[09:51 root@m01 ~]# awk -vn1=$x -vn2=$y 'BEGIN{print n1/n2}'
0.10101
[09:51 root@m01 ~]# awk -vx=10 -vy=99 'BEGIN{print x/y}'
0.10101
[09:53 root@m01 ~]#

8.利用shell编译小型计算器

[10:18 root@m01 ~]# vim show.sh
#!/bin/bash
. /etc/profile
x=$1
y=$2
echo $1+$2= ;awk -vx=$x -vy=$y 'BEGIN{print x+y}'
echo $1-$2= ;awk -vx=$x -vy=$y 'BEGIN{print x-y}'
echo $1*$2= ;awk -vx=$x -vy=$y 'BEGIN{print x*y}'
echo $1/$2= ;awk -vx=$x -vy=$y 'BEGIN{print x/y}'
[10:19 root@m01 ~]# sh show.sh 5 6
5+6=
11
5-6=
-1
5*6=
30
5/6=
0.833333

知识有限暂不支持小数运算

28268768520936529ed6a09e09cf18e1.png

f2c649bfbdf77c2597ecb1eb2254b39c.png

9.特殊变量中简单判断参数个数:

db2a7e366532158d8d7f6bc4e0aa3124.png

4d04cb5f5a4906c3899431baf1305056.png

10.判断目录存不存在,不存在就创建

2fe8db17f14a06618a70dc861f38d928.png

8d869b74bb8adfd3ea7560a366748bbc.png

三、判断语句

if判断句语法:单分支: 如果。。。那么就

if [ 表达式 ]

then命令

else

exit 退出

fi 果如

1.if语句格式:

if [ 表达式 ]
then命令
exit 退出
fi

9631f99ec4069bbcfdc0e4eac630f8b1.png

8ad278ed78d5ceca23fdbd8e3f3a8ebb.png

2.对比两个数值大小

75cb1548199755ae118d1618f00b9537.png

15521611b5160349e8e46aa7e50a2a43.png

3.检查定时任务是否运行中

adbd4ccfaef47fe67cd2502ab1225787.png

5082fb4d20e0b69d950187a2ec0807ac.png

避免过滤的时候 过滤掉grep命令自己

0babe4c7a6f2523b1d8972065b631be3.png

四、循环语句

for语句

f2f700ca15794b3e07556033714a9503.png

6b92dfa9ed12f8deaf5fb830ef8b4d74.png

转自linux丶晨星

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值