主要内容有学习shell基本语法,变量定义,循环结构,执行方式,
用脚本调试的方式来执行脚本,分析循环的过程,以及一些实例。
课程大纲:
Shell编程语法{
shell结构:{
1. #!指定执行脚本的shell // $ more /etc/shells
2. #注释行 //重要
3. 命令和控制结构
}
创建shell程序的步骤:{
第一步:创建一个包含命令和控制结构的文件
第二步:修改文件的权限,使它可执行。
chmod u+x example001
第三步:执行 ./example001 或 sh example001
调试执行:sh -x example005_read
}
shell变量{
变量:shell传递数据的一种方法,用来代表每个取值的符号名。
shell有两类变量:临时变量和永久变量
临时变量是shell程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。
包括:用户自定义变量、位置变量。
永久变量是环境变量,其值不随shell脚本的执行结束而消失。
echo $LANG /$PATH /$SHELL /$PS1
用户自定义变量:字母或下划线开头;由字母、数字或下划线系列组成;大小写区分;变量名长度不限。习惯:大写字母命名变量
使用变量值:变量名前加前缀"$"
变量赋值:赋值号"="两边没有空格。
定义时赋值,如 NUM=1
将一个命令的执行结果赋给变量,如 TIME=`date` TIME=$(date +%Y%m%d) (pass)
将一个变量赋给另一变量,如:A=$B
使用echo命名查看变量值。如:echo $A
列出所有的变量 # set | more
包含多个字的变量:$NAME="Jack Qiu" 或者 $NAME='Jack Qiu'
"" 和 ''区别
$ABC="oracle home path is $ORACLE_HOME" //读取变量 ORACLE_HOME并赋值
$ABC='oracle home path is $ORACLE_HOME' //原封不动 将 oracle home path is $ORACLE_HOME 赋值给 ABC
删除变量
# unset pathmunge
位置变量和特殊变量
位置变量:shell解释执行用户命令时,将命令行的第一部分作为命令名,其他部分作为参数。
由出现在命令行上的位置确定的参数称为位置参数。
例如:ls -l file1 file2 file3 file4
$0 这个程序的命令名 ls -l
$n 这个程序的第n个参数值,n=1-9
提高脚本的适用性。重复性功能,类似于一个方法。
sh authobak.sh /etc
sh authobak.sh /boot
特殊变量
$* //这个程序的所有参数
$# //这个程序参数的个数
$$ //这个程序的PID
$! //执行上一个后台命令的PID
$? //执行上一个命令的返回值
$? 0:执行成功;非0:执行失败
}
shell命令{
read{
read命令:从键盘读入数据,赋给变量
如:read USERNAME
}
expr{ //shell变量运算符
}
}
}
Shell脚本调试
Shell应用实例