一、概述
1. shell 是一个命令行解释器,它接受应用程序/用户命令,然后调用操作系统
2. 也是一门编程语言,解释执行,灵活性好。易调式
3. 一般文件.sh 后缀
二、shell入门 - > hello world
1. shell 第一行声明 解释器
2. 编写向控制台打印 hello world 命令
3. 执行 shell 脚本的三种方法
(1)sh / bash + 文件的相对路径/绝对路径
(2)文件的相对路径 / 绝对路径 (开启一个子shell 进程,必须该文件具有 x 权限)
(3). / source 文件的路径 (在当前bash 环境下 解释脚本)
三、变量
1. 系统变量
(1)常见变量
$HOME、$PWD、$SHELL、$USER等
(2)查看变量
1. 查看系统变量
echo $HOME
2. 查看当前shell所有的变量
set
3. 查看系统所有的全局变量
env | less
4. 使用用户自定义变量
ls $HOME
2. 用户自定义变量(一般小写)
(1)定义普通变量
变量名=值
该变量名只是局部变量,只能在当前bash访问,对于子shell访问不到
(2)将普通变量变为全局变量
export 变量名
全局变量在子shell 和 父shell 都可以访问,但是 子shell对全局变量的修改,不影响父shell。
(3) 输出变量的值
echo $变量名
(4)定义只读变量
readonly 变量名
(5)撤销变量
unset 变量名,不可撤销只读变量
.特殊变量
(1)参数占位符 $n 0<= n <=9
解释: $0 代表当前脚本名称
$1 到 $9 是参数占位符,可运行时,后面加参数来取代
(2)参数统计符 $#
可代表你输入参数的数量
(3)获取全部参数符
1. $* 把全部输入的参数当成一个整体
2. $@ 把全部输入的参数,分开,相当于放入数组,可以遍历
(4)$?
表示当前执行脚本的状态 0代表成功
四、运算符
1. 基本语法
$((远算符)) 或 $[运算符]
2.案例 计算 (2+4)*5 / 10 赋予a变量
输出。
a=$[(2+4)* 5 / 10 ]
echo $a
3. 设计一个加数脚本 add.sh
五、条件判断
1. 基本语法 (0 代表成功 1 代表失败)
test express 或者 [ express ]
注:中括号要与表达式有个空格,表达式中判断符也要与前后有空格
2. 字符串 = != 来判断是否相等
3.两个整数判断
4. 判断文件的权限
案例:判断hello 文件是否有可读权限
[ -r hello ]
5. 判断文件或目录是否存在
6. && 和 ||
&& 代表前面表达式为真,才会执行下一个表达试,若第一个表达式为假,则不会执行第二个表达式
|| 代表前面的表达式为假,才会执行下一个表达试,若第一个表达式为真,则不会执行第二个表达式
总结
等表达式确认是否真假就会直接返回
7.案例
1. 判断 22大于11
text 22 -gt 11 或者 [ 22 -gt 11]
2. 文件是否存在
[ -e hello ]
六、流程控制
1. 单分支
(1)基本语法
if 条件表达式;then 程序(DOS)fi
if 条件表达式
then
程序(.sh文件)
fi
(2)案例,判断hello文件是否存在,若存在则输出OK
if [ -e hello ] ;then echo OK if
(3)多条件语法
if[ 条件表达式 ] && [ 条件表达式 ];then 程序 fi
if [ 条件1 -a 条件2 ]; then 程序 fi
-a 代表and -o代表or
2. 多分支
1. 双分支
if 条件表达式
then
满足then程序
else
不满足if程序
fi
2.多分支
3. case语句
4. for循环
5. while 循环
6. 从控制台获取输入
read
七、函数
注 在.sh脚本文件中,调用系统函数要用
$(命令)
1. 系统函数
1. basename
2. dirname
2. 自定义函数
注 用于返回值有限制 (小于等于255)
,一般把运算出的值,赋予变量,进行运算