Upload
others
View
21
Download
0
Embed Size (px)
Citation preview
Shell Scripts part 2
授课教师:李正华
什么是 shell script
● 批处理文件● 利用 shell 的功能写出的一个程序 (program)● 将许多命令写在一起,进行复杂的操作
● 数组、循环、条件、逻辑判断等
为什么学习 shell script
● 自动化管理● 追踪与管理系统的重要工作● 简单的入侵检测功能● 连续命令单一化● 简单的数据支持● 跨平台支持与学习历程较短
第一 script 的编写与执行
●
编写 script 的良好习惯
● 注释详细,记录编程的思路,和修改过程● 清晰:用 [tab] 对齐● 用 vim :语法检测● 变量、函数定义遵循一定的规范
交互式脚本:键盘输入
●
利用日期进行文件的创建
取得命令返回的信息
● $(command)● $(date +%Y%m%d}
数值运算
● $(())● $(( 13 * 3))
利用 test 判断
利用 test 测试
● 关于文件类型判断 test -e filename
利用 test 测试
● 关于文件权限的判断 : test -r filename
利用 test 测试
● 关于文件新旧的判断 test file1 -nt file2
利用 test 测试
● 整数比较 : test n1 -eq n2●
利用 test 测试
● 字符串比较
利用 test 测试
● 多重条件判断( and, or, ! )
利用 test 测试:例子
利用 [] 测试
● [-z "$HOME"]; echo $?
Shell scirpt 默认变量(命令行参数)
Shell scirpt 默认变量(命令行参数)
● 例子
Shell scirpt 默认变量(命令行参数)
● shift ,参数变量号码偏移
条件判断 if then
● 单层判断
条件判断 if then
● 单层判断
条件判断 if then
● 多重判断
条件判断 if then
● 多重判断
条件判断 if then
● 多重判断
条件判断 if then
● 多重判断
监听网络服务端口
计算退伍日期
计算退伍日期 (2)
case , esac 判断
case , esac 判断
case , esac 判断
函数 function
● 做一件事情● 输入(参数)、输出(返回值)
函数 function
函数 function (传参数)
● $0, $1, $2 ( 和 shell script 本身的 $0 不同)
循环 (loop)
● while do done
循环 (loop)
循环 (loop)
循环 (loop)
● for do done
第一次循环时 ,$val = con1;第二次, $val=con2; ...
循环 (loop)
循环 (loop)
● 测试目录下文件属性
循环 (loop)
● for do done (面向数值步长)
初始值 i=1;限制值 i<=100;执行步长: i=i+1
循环 (loop)