1、介绍
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
2、shell脚本
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。
3、 编写第一个shell脚本
先创建一个扩展名为.sh的文件 在使用vi编译器进入输入
基本语法
#!/bin/bash
echo "Hello World !"
必须以#!/bin/bash为开头
echo:输出语句
执行:./脚本文件名.sh
注意:权限不足
运行后会出现如下结果:
更改权限:
chmod 777 my02.sh
再次运行:
4、shell变量
#!/bin/bash
name="小明"
echo "您好:${name}"
运行代码:
shell变量和java变量的区别:无需添加数据类型
5、shell传递参数
当执行shell脚本时,可以传递参数。 在shell脚本中使用$n接受传递的参数。n:表示数字1-∞
6、shell数组
数组中科存放多个值。bash shell只支持一维数组,初始化时不需要定义数组大小(与PHP类似)。
与大部分编程语言类似,数组元素的下标由0开始
语法:
array_name=(value1,value2...valuen)
注意:shell数组用括号来表示,元素用”空格“ 符号分割开
注:如果直接引用数组名而没有使用下标默认是下标0,这时候就可以使用*来代替下标拿到全部信息
7、关联数组
我们可以以理解为java中的map
关联数组用declare来声明,语法格式如下:
declare -A array_name=([k]=v [k]=v [k]=v)
${arr_name[k]}
运行如下:
使用*表示所有key对应的值
8、shell基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括:
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):
运行如下:
3.8 控制语句