资料来源: 尚硅谷
2-sheel脚本入门
脚本以#!bin/bash 开头
3-变量
3-1自定义变量
在bash中,变量默认类型为字符串类型,无法直接进行数值运算
c=1+2
echo $c
1+2
使用 export 可把变量提升为全局环境变量
export 变量名
3-2特殊变量
3-2-1 $n
3-2-2 $#
3-2-3 $* 和 $@
1)基本语法
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
3-2-4 $?
基本语法
$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一 个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明 上一个命令执行不正确了。)
4-运算符
基本语法
$((运算式))
$[运算式]
5-条件判断
基本语法
[ condition ](注意 condition 前后要有空格)
注意:条件非空即为 true,[ atguigu ]返回 true , [ ] 返回 false
常用判断条件
(1)两个整数比较
(2)按照文件权限进行判断
(3)按照文件类型进行判断
案例实操
[atguigu@hadoop101 shells]$ [ 23 -ge 22 ]
[atguigu@hadoop101 shells]$ echo $?
0
[atguigu@hadoop101 shells]$ [ -w helloworld.sh ]
[atguigu@hadoop101 shells]$ echo $?
0
[atguigu@hadoop101 shells]$ [ -e /home/atguigu/cls.txt ]
[atguigu@hadoop101 shells]$ echo $?
1
[atguigu@hadoop101 ~]$ [ atguigu ] && echo OK || echo notOK
OK
[atguigu@hadoop101 shells]$ [ ] && echo OK || echo notOK
notOK
6-流程控制
6-1 if判断
注意事项:
① [ 条件判断式 ],中括号和条件判断式之间必须有空格
② if 后要有空格
单分支
多分支
案例
6-2 case语句
基本语法
案例
6-3 for循环
6-3-1 基本语法1
6-3-2 基本语法2
6-3-3 比较$* 和 $@ 的区别
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号“”包含时, 都以$1 $2 …$n 的形式输出所有参数。
当它们被双引号“”包含时
$* 会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输出所有参数;
$@ 会将各个参数分开,以“$1” “$2”…“$n”的形式输出所有参数。
6-4 while 循环
7-read读取控制台输入
8-函数
8-3自定义函数