嵌入式Linux开发工具shell-shell编程(脚本语言:批处理)
批处理示例:
Linux系统运维工程师(嵌入式系统开发-系统移植)
shell含义:
1.命令解析器(将用户命令解析,调用相应的命令的可执行文件)
2.脚本语言
命令:可执行文件
shell定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
本质上,shell script是命令行命令简单的组合到一个文件里面。
shell种类:
Bourne shell(sh)
Korn shell(ksh)
Bourne Again shell(bash)
C shell(包括csh and tcsh)
TENEX/TOPS C shell(tcsh)
程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
#!用来告诉系统它后面的参数是用来执行该文件的程序。
要使脚本可执行:
chmod +x filename
通过输入: ./filename 来执行您的脚本
1.变量名=值
取出变量值可以加一个美元符号($)在变量前面
变量赋值时,“=”两边都不能有空格
BASH中的语句结尾不需要分号
2.默认变量
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
函数变量传递
3.if语句结构
// If [expression]
then
#code block
fi
If [expression]
then
#code block
else
#code block
fi
4.
-e 文件已存在
-f 文件是普通文件
-s 文件大小不为零
-d 文件是一个目录
-r 文件对当前用户可以读取
-w 文件对当前用户可以写入
-x 文件对当前用户可以执行
5.for循环语句:
//for var in [list]
do
#code block
done
其中var是循环控制变量, [list]是var需要遍历的一个集合,do/done包含了循环体,相当于c语言中的大括号。另外do和for被写在同一行,必须在do前面加上“;”如: for var in [list];do
6.while循环语句:
//while [condition]
do
#code block
done
7.case语句结构:
//case “$var” in
contidion1)
;;
contidion1)
;;
*)
default statements;;
esac