目录
1.什么是shell脚本
- Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
- Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
- Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
- shell他就是一个脚本命令,当运行该脚本命令时,可以与Linux系统底层进行交互
2.第一个shell脚本
打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好
输入一些代码,第一行一般是这样:
#!/bin/bash echo "Hello World !"
- 必须以#!/bin/bash开头
- echo 输出语句
- 执行: ./脚本文件名.sh
- 注意: 权限不足
修改权限 chmod
- rw-:创建该文件的用户具有的权限
- r- -:创建该文件的用户所在组的其他用户的权限
- r- -:其他人具有的权限
- r:读权限
- w:写权限
- x:执行权限
- -:没权限
- r == 4
- w == 2
- x == 1
修改权限
修改后
查看 ./test.sh
3.Shell 变量
shell的变量和java的变量区别: 无需添加数据类型
4.Shell 传递参数
当执行shell脚本时,可以传递参数。 在shell脚本中使用$n接受传递的参数。n:表示数字1-∞
5.Shell 数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。
语法:
array_name=(value1 value2 ... valuen)
注意: Shell 数组用括号来表示,元素用"空格"符号分割开
注意: 如果直接引用数组名而没有使用下标默认下标0
6.关联数组
关联数组使用 declare 命令来声明,语法格式如下:
declare -A array_name=([k]=v [k]=v [k]=v) ${arr_name[k]}
使用*表示所有key对应的值
7.Shell 基本运算符
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。