网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
全局变量(环境变量)
系统创建
在整个系统中生效
大部分地方意思一样
一般是大写
特殊变量
$? 数字 $# $*
#### 2.局部变量(普通变量)
![image.png](https://upload-images.jianshu.io/upload_images/16952149-634200bda953fb7e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 3.引号系列
![image.png](https://upload-images.jianshu.io/upload_images/16952149-ccb04eb3cbd3ced7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 4.特殊变量
![](https://upload-images.jianshu.io/upload_images/16952149-e0d79be1e3cb3fe7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 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.局部变量和全局变量区别
<https://www.processon.com/view/link/5a0e4380e4b06c8e10923353>
![](https://upload-images.jianshu.io/upload_images/16952149-e9ac48f3db41ee1e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image.png](https://upload-images.jianshu.io/upload_images/16952149-186b6fb8aa849faa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#### 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
/
x/
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
−
v
n
2
=
x -vn2=
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
=
;
a
w
k
−
v
x
=
2= ;awk -vx=
2=;awk−vx=x -vy=$y ‘BEGIN{print x+y}’
echo $1-
2
=
;
a
w
k
−
v
x
=
2= ;awk -vx=
2=;awk−vx=x -vy=$y ‘BEGIN{print x-y}’
echo $1\*
2
=
;
a
w
k
−
v
x
=
2= ;awk -vx=
2=;awk−vx=x -vy=$y ‘BEGIN{print x*y}’
echo $1/
2
=
;
a
w
k
−
v
x
=
2= ;awk -vx=
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
#### 9.特殊变量中简单判断参数个数:
![](https://upload-images.jianshu.io/upload_images/16952149-d9ff6e10bb2d9edf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/16952149-1e1406e2cc875141.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 10.判断目录存不存在,不存在就创建
![](https://upload-images.jianshu.io/upload_images/16952149-b7ba11ab70afeb3d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/16952149-c1fd3735773015e0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
## 三、判断语句
>
> if判断句语法:单分支: 如果。。。那么就
> if [ 表达式 ]
> then命令
> else
> exit 退出
> fi 果如
>
>
>
#### 1.if语句格式:
if [ 表达式 ]
then命令
exit 退出
fi
![](https://img-blog.csdnimg.cn/img_convert/faa18e46fd80f011069d22a4dc6a6edd.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/e668a2b4872ce0e319cc2410375dfda0.webp?x-oss-process=image/format,png)
### 2.对比两个数值大小
![](https://img-blog.csdnimg.cn/img_convert/dc93a30e27f5085ac1cd573c9aa6d5a3.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/8a655b6ca9acaf9cc1db52df347a1425.webp?x-oss-process=image/format,png)
### 3.检查定时任务是否运行中
![](https://img-blog.csdnimg.cn/img_convert/bfdf180ff3b41f382c564eac4432ca11.webp?x-oss-process=image/format,png)![](https://img-blog.csdnimg.cn/img_convert/4e619f03cfce900c24a60552e7d656b7.webp?x-oss-process=image/format,png)
>
> #### 避免过滤的时候 过滤掉grep命令自己
>
>
> ![](https://img-blog.csdnimg.cn/img_convert/2e6aa5f70850ea8141a2f870287d14e9.webp?x-oss-process=image/format,png)
>
>
>
### 四、循环语句
#### for语句
![](https://img-blog.csdnimg.cn/img_convert/a4337c1b6a9a4fb333145822586eb606.webp?x-oss-process=image/format,png)
### 五、扩展:
##### read命令
<http://man.linuxde.net/read>
>
> 从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY
>
>
>
**先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里**
**深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/4b328f120675f3b06993518b8820bf6d.png)
![img](https://img-blog.csdnimg.cn/img_convert/b42deede1839e4d5ea3333395717f819.png)
![img](https://img-blog.csdnimg.cn/img_convert/c5cc894c475760e310cb34d64b956372.png)
![img](https://img-blog.csdnimg.cn/img_convert/696343c655fa0eab59c8462837cf5ddb.png)
![img](https://img-blog.csdnimg.cn/img_convert/5c92cae5ac22155b5ec5fe94370a5139.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
-wlhppCnV-1714976334183)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**