一、shell介绍
- shell是一段应用程序,是用户和操作系统交互的一个桥梁,shell通常就是shell脚本
- shell弱类型语言,在定义变量不需要指定变量的类型
二、shell脚本规范
- shell脚本是以.sh结尾的文件
- sh文件的第一行内容为#!/bin/bash---->表示使用shell进行编程(不写也不会报错)
- shell中的注释:#
三、shell脚本基本操作流程
- 建立shell脚本(使用vim编辑器)
vim 脚本名.sh
- 编写shell脚本
#!/bin/bash
……
- 运行shell脚本
方式一:sh 脚本名.sh
方式二: chmod +x脚本名.sh
./脚本名.sh
四、变量
- 格式:变量名=变量值,且等于号两边没有空格
Eg: name=chengliang
- 变量命名规范:
(1)命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
(2)中间不能有空格,可以使用下划线(_)。
(3)不能使用标点符号。
(4)不能使用bash里的关键字(可用help命令查看保留关键字) - 输出变量内容:echo $变量名
Eg:echo $name
- 变量的释放:unset 变量名
- 设置变量为只读变量:readonly 变量名
注:只读变量的值不能被改变,也不能使用unset删除
Eg:unset name
- 特殊的变量(带有空格的变量定义):
(1)双引号""
如果双引号中存在 $变量名的话,那么输出结果将会是变量名对应的变量值
(2)单引号’’
如果变量值中存在**$变量名**,那么将原样输出
(3)反单引号``(Tab上面的键)
反单引号中可以存放的是linux命令,运行脚本时相当于运行linux命令
name1=world
name2=”hello$name1”
name3=’hello$name1’
echo $name2 输出--->helloworld
echo $name3 输出--->hello$name1
五、read键盘获取单个变量/多个变量值
- 获取单变量值
- 不带提示文字
read 变量名
- 带有提示文字
read -p “提示文字” 变量名
2.获取多变量值
- 不带提示文字
read 变量1名 变量2名
- 带有提示文字
read -p “提示文字” 变量1名 变量2名
注:终端输入值时也要用空格隔开
六 、参数传递
-
作用:
向shell脚本文件中传递数据,在运行脚本时一起传递 -
格式:
命令 文件名 参数(运行文件时的命令,脚本中使用$1表示参数值) -
文件中接收参数的方式
$1—>表示第一个参数
$2—>表示第二个参数
$3—>第三个参数
$n—>表示第n个参数
$0—>代表文件名
$@:显示全部参数
$#:显示参数的个数
test.sh
#!/bin/bash
1 echo this is $2
2
3 echo this is $1
4
5 echo this is $2
运行结果
七、if - 分支结构
- 格式1
if [ 条件 ] then
语句 else
语句 fi
- 格式2
if [ 条件 ]; then
语句 else
语句 fi
- 注
- 条件两边要有空格
- 多个条件间要有空格
- if后面要有空格
- 条件中如果存在变量,那么变量的两边要有双引号
# 判断任意一个目录是否为空
#!/bin/bash
read -p "请输入需要判断的目录:" dir
m=`ls $dir`
if [ "$m" ==