一起来学Shell脚本编程(四)
前言
目前正在出一个Shell脚本编程
系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~
前面我们学习了Linux
的一些基本命令,需要我们在终端手动去执行,但在处理一些复杂的操作就显得有点乏力,需要不停的执行,还很容易出错。有没有一种办法,可以帮助我们执行这一些列操作,方法当然有,那就是通过脚本去解决。
作为服务端开发,shell脚本编程
还是要掌握一下的,可以做做基础性的运维,提高工作效率。
本系列主要以Linux Bash
为主 ,好了, 废话不多说直接开整吧~
字符串
在Shell
中最常用的就是字符串
和数字
,字符串
可使用单引
号也可以使用双引
号,主要区别:
- 双引号里可以有变量,单引号则原样输出
- 双引号里可以出现转义字符,单引号则原样输出
- 单引号字串中不能出现单引号,而双引可以
字符串拼接
#!/bin/bash a='hello' b='world' echo $a $b
结果输出:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./str.sh hello world [root@iZ2ze5vrnucj8nu52fq932Z shell]#
长度获取
#!/bin/bash/ a='hello world' echo ${#a}
结果输出:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./str.sh 11 [root@iZ2ze5vrnucj8nu52fq932Z shell]#
字符串截取
#!/bin/bash a='hello world' echo ${a:1} # 从第1个截取到末尾 echo ${a:1:3} # 从第一个位置开始截取3个 echo ${a:0} # 截取全部 echo ${a:-2} # 负数无效 相当于从第0个开始
输出:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./str.sh ello world ell hello world hello world [root@iZ2ze5vrnucj8nu52fq932Z shell]#
字符串表达式
给大家介绍一些常用的,我们直接看例子:
substr
: 字符串截取
#!/bin/bash a=`expr substr 'hello world' 1 2` echo $a
结果输出:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./str.sh he [root@iZ2ze5vrnucj8nu52fq932Z shell]#
match
字符串匹配的长度
expr match "hello world" "h.*"
输出:
11
index
: 字符串首次出现的位置
expr index "hello world" "wo"
输出:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./str.sh 5 [root@iZ2ze5vrnucj8nu52fq932Z shell]#
length
: 字符串长度
echo length "hello world"
输出:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./str.sh 11 [root@iZ2ze5vrnucj8nu52fq932Z shell]#
数组
bash
支持一维数组(不支持多维数组),大小不限制
语法,可以如下定义:
# 1 array=(value1 value2 ... ) # 2 array=( value0 value1 value2 value3 ) # 3 array[0]=value0 array[1]=value1 array[2]=value2
读取数组:
#!/bin/bash arr=(1 2 3 4 5) echo ${arr[1]} # 读取下标为1的元素 echo ${arr[*]} # 获取所有元素 echo ${arr[@]} # 获取所有元素
输出:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./arr.sh 2 1 2 3 4 5 1 2 3 4 5 [root@iZ2ze5vrnucj8nu52fq932Z shell]#
获取数组长度:
#!/bin/bash arr=(1 2 3 4 5) echo ${#arr[1]} # 获取元素下标为1的长度 echo ${#arr[*]} # 获取所有元素的长度 echo ${#arr[@]} # 获取所有元素的长度
输出:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./arr.sh 1 5 5 [root@iZ2ze5vrnucj8nu52fq932Z shell]#
结束语
大家平时在工作的时候就可以灵活运用起来了,多用用就熟悉了,大部分项目中都会用到脚本帮助我们去做一些自动化的工作,从而提高效率,还不容易出错~
本着把自己知道的都告诉大家,如果本文对有所帮助,点赞+关注
鼓励一下呗~