![fead98fd4fc36ae433559e04640e0600.png](https://i-blog.csdnimg.cn/blog_migrate/6ece325426447391831cbfe065e14225.png)
“ 进入企业后,大部分情况都是Linux操作系统,那么熟悉命令的用法以外,熟悉使用shell脚本也是让我们有更多时间摸鱼的好办法(ps面试要注意哦),开整!
1 shell是什么
“ 平时经常在Linux操作系统中使用各种命令,比如查看当前的目录文件,我们会使用"ls"或者"ls -l",这些字符串参数实际上会被"某段程序"执行并启动它。这个负责将用户输入的字符串转换为需要执行程序的东西叫做"shell"。即帮用户更方便使用操作系统接口的“壳”。同样的壳还有当我输入Maven+相关参数的时候是不是就会去执行相应的功能,我们驶入sql语句的时候,数据库引擎是不是也会各种调用,一样的道理
2 尝试编写第一个shell
“ vim创建打开一个文件,扩展名为.sh。如下所示
#!/bin/bash #告诉系统使用什么解析器
echo "Hello xiaolan !" # echo进行输出
- 执行方法1
“ chmod +x ./hello.sh
./hello.sh
- 执行方法2
“ /bin/sh hello.sh
3 变量
“ 变量名和等号之间不能有空格
定义变量注意事项
- 命名首个字符不能是数字,只能使用英文字母、数字和下划线
- 不能使用标点符号
- 不能使用bash中关键字
变量使用
“ 使用变量(使用变量的过程中,最好加上花括号),只需要在变量前面加上美元符号即可
#!/bin/bash
James="小皇帝"
echo $James
只读变量
“ 使用readonly将变量定义为只读,只读意味着不能改变
#!/bin/bash
James="小皇帝"
readonly James
James="登哥"
删除变量
“ 使用unset删除变量 变量删除以后不能再次使用,且不能删除只读变量
#!/bin/bash
James="小皇帝"
unset James
echo $James #不会有任何输出
变量类型
- 局部变量
“ 仅当前shell可用
- 环境变量
“ 所有程序都能访问环境变量
- shell变量
“ 通过一部分环境变量和shell变量保证shell的正常运行
4 字符串
“ 使用字符串的过程中,既可以用双引号也可以用单引号,也可以不用
- 单引号
“ 单引号内容原样输出,不能包含变量,且不能出现单独单引号
- 双引号
“ 可以出现转义字符
#!/bin/bash
James="小皇帝"
str=""$ James"! oh my gad n "
echo -e $str
获取字符串长度
“ 使用#
string="qwert"
echo $(#string)
# 提取子字符串
echo $(string:1:3)
#查找字符串
echo
5 数组
“ 支持以为数组
定义数组
“ 数组元素使用“空格”隔开
array=(value1,value2,value3)
读取数组
value1=${array[0]}
使用@输出数组所有元素
echo ${array[@]}
获取数组中所有元素以及数组长度