linux+Shell+programming解读.pptVIP

  • 3
  • 0
  • 约1.34万字
  • 约 75页
  • 2016-03-07 发布于湖北
  • 举报
参数扩展 问题: 批处理 1_tmp, 2_tmp, … 方法 #!/bin/sh i=0 while [ “$i” –ne 10 ]; do touch “${i}_tmp” i=$(($i+1)) done exit 0 4. 综合练习 Install脚本 CD唱盘管理程序 4. 综合练习 Install脚本 CD唱盘管理程序 要求:在一个文件夹下,有五个文件,分别是abc.pl def.pl abc.conf def.conf sample.mov 1.将.pl文件拷贝到/usr/local/testpro下,如果没有该文件夹则先创建该文件夹再拷贝;如果已经存在相应的文件则先将旧文件移动到/usr/local/testproback目录下。 2.将.conf文件拷贝到/usr/local/etc下,如果没有该文件夹则先创建该文件夹再拷贝;如果已经存在相应的文件则先将旧文件移动到/usr/local/etcback目录下。 3.将.mov文件拷贝到/usr/local/movies下,如果没有该文件夹则先创建该文件夹再拷贝;如果已经存在相应的文件则先将旧文件移动到/usr/local/moviesback目录下。 4.最后要求用户输入一个用户名和密码,以明文的形式存储到一个文件/usr/local/usepass.txt中 最后打印出安装成功信息,结束程序 4. 综合练习 Install脚本 CD唱盘管理程序 设计 用文件进行数据存取 Text processing: grep command/sed command Compared with database -use a simple file Tips:(1) 主程序 quit=n while [ “$quit” != “y” ]; do set_menu_choice case “$menu_choice” in a) add_records;; r) remove_records;; f) find_records y;; u) update_records;; … q|Q) quit=y;; *) echo “Sorry, choice not recognized.”;; esac done Tips:(2) 全局变量 menu_choice 功能模块 add_records: 输入歌曲名称与对应的专辑(CD唱盘)标题信息 find_records: 歌曲位于哪个专辑中 … Tips:(3:1) Database:用一个普通文件充当,每一行是一首歌曲信息,歌名与专辑名用“#”隔开。 查找/模式匹配 1. res=`echo $records |grep “#”` 变量records中是否包含“#”,将包含“#”的内容赋给变量res Tips:(3:2) 2. songname=`echo $records |grep -o .*#` 将变量records中“#”前面的内容取出,赋给变量songname (注意选项 -o) 3. sed -i /$patstr/d cdmanager.db 将文件cdmanager.db中包含“$patstr”内容的行删除 Review Shell概述:是什么,角色,地位… Shell脚本的创建和执行 Shell脚本的语法:变量、控制结构、函数、特殊命令… * 1、Shell是用户和操作系统之间的接口:下页; 2、Shell作为核外程序而存在:课本P16图2-1 * Shell是用户和操作系统之间的接口 * 命令行下 man bash 可以看到bash的 description: “Bash – GNU Bourne-Again SHell. Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh). * 在Linux中,每一个进程都有三个特殊的文件描述指针:标准输入(standard input,文件描述指针为0)、标准输出(standard output,文件描述指针为1)、标准错误输出(standard error,文件描述指针为2)。这三个特殊的文件描述指针使进程在一般情况下接收标准输入终端的输入

文档评论(0)

1亿VIP精品文档

相关文档