1. shell简介:
1.1 什么是shell
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界说的shell通常指的是shell脚本。
本文介绍的是bash shell,所以编写脚本时需要在首行:#!/bin/bash。
1.2 shell脚本的执行方式:
1)作为解释器参数: shell脚本没有可执行权限的时候,可以使用“bash/source”或者“. ”来执行。
2) 做为可执行程序:先给shell脚本可执行权限,然后再执行。必须使用./(从当前目录)来执行。因为默认是从环境变量去寻找shell脚本路径,如果不加./的话就无法找到该脚本,因为该脚本路径并没有添加到环境变量里。
详细见如下截图:
2. shell语法
2.1 shell语法概述
shell变量赋值的时候,变量名和等号间不能有空格。这个非常特别。
变量分为局部全局和shell变量。
自定义的变量可以设定为只读变量。自定义的非只读变量可以删除,如下截图:
由以上例程我们也可以知道,引用变量需要$符+花括号${}。
2.2 字符串
shell字符串,单双引号都可以,但是双引号功能会更强大,双引号里可以引用变量和转义字符,所以双引号也同时具有了拼接字符的功能。如下截图:
字符串还有各种操作,如下截图:
2.3 数组
Shell 数组用括号来表示,元素用"空格"符号分开。
使用@ 或 * 可以获取数组中的所有元素。如下截图:
获取数组长度的语法跟获取字符串长度的语法一样,如下图:
2.4 运算符
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
运算符和操作数间必须有空格。
2.4.1 算术运算符
2.4.2 关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
2.4.3 布尔运算符 + 逻辑运算符
注意区分,如下两个表达式是同一个意思:
布尔运算【$a -o $b】
逻辑运算是两个【【 $a || $b】】
2.4.4 字符运算
2.4.5 文件测试运算符
2.5 循环语句
2.5.1 for循环
类C语言for循环:
2.5.2 while循环
直到condition为false时结束循环
2.5.3 until循环
直到condition为true时结束循环。
2.5.4 死循环
2.6 跳转语句
2.6.1 if else
2.6.2 case
2.6.3 continue/break
continue跳出本次循环,break结束所有循环。
3. shell命令
3.1 printf
3.2 test