目录
什么是shell脚本
我们已经能够熟练的在终端中输入命令来完成一些常用的操作,但是我们都是一条一条输入命令。这样会很麻烦,那么有没有一种方式可以将很多条命令放到一个文件里面,然后直接运行这个文件即可?肯定有,这个就是shell 脚本!
shell 脚本类似windows的批处理文件,shell脚本就是将连续执行的命令写成一个文件。 shell脚本提供数组、循环、条件判断的等功能。shell脚本一般Linux运维或者系统管理员要掌握的,作为嵌入式开发人员,只需要掌握shell脚本量基础的部分即可。
shell脚本写法
shell脚本是个纯文本文件,命令从上而下,一行一行的开始执行。shell脚本扩展名为.sh。shell脚本第一行一定要为:
#!/bin/bash
表示使用bash
shell语法
交互式shell脚本
echo输出
read输入
shell脚本的数值计算
shell仅支持整形,数值计算使用$((表达式))。
test命令
test 命令用于查看文件是否存在、权限等信息,可以进行数值,字符,文件三方面的测试。
&&和||命令
cmd1&&cmd2当cmd1执行完毕并且正确,那么cmd2开始执行,如果cmd1执行完毕错误,那么cmd2不执行。
cmd1||cmd2当cmd1 执行完毕并正确,那么cmd2不执行,反之cmd2执行。
中括号[]判断符
[]里面只能输入 == 和!=
默认变量
$0-$n,表示shell脚本的参数,包括shell脚本命令本身,shlle脚本命令本身为$0
$#: #表示最后一个参数的标号。
$@:表$1、$2、$3
shell脚本条件判断
shell脚本支持条件判断,虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂一点的场景就不适合了。shell 脚本提供了if then条件判断语句,写法:
if 条件判断 ; then
//判断成立要做的事情
fi
还有if then else语句,写法
If 条件判断:then
//条件判断成立要做的事情。
else
//条件判断不成立要做的事情。
fi
或:
if 条件判断;then
//条件判断成立要做的事情
elif [条件判断];then
//条件判断成立要做的事情。
else//条件判断不成立要做的事情。
fi
case语句
还有 case 语句
case $变量in
“第1个变量内容")
程序段
;;//表示该程序块结束!!
“第2个变量内容")
程序段
;;
第n 个变量内容”)
程序段
;;
esac
shell脚本函数
shell脚本也支持函数,函数写法如下:
function fname ()
{
//函数代码段
}
shell脚本函数带参
Shell循环
shel脚本也支持循环,比如while do done,表示当条件成立的时候就一直循环,直到条件不成立。
while [条件] //括号内的状态是判断式
do//循环开始
//循环代码段
done
还有另外一种 until do done,表示条件不成立的时候循环,条件成立以后就不循环了,写法如下:
until [条件]
do
//循环代码段
done
for循环,使用for循环可以知道有循环次数,写法.
for var in con1 con2 con3
do
//循环代码段
done
for循环数值处理,写法
for((初始值;限制值;执行步长))
do
//循环代码段。
done