[理学]第6章 B-Shell及编程.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第6章 B-Shell及编程

第6章 B-Shell及编程 主要内容 主要目的 编写shell脚本程序 交互方式下使用shell的流程控制,编写复合命令 主要内容 元字符,如:引号 shell的变量替换,命令替换,文件名生成 shell变量 流程控制 子程序 主要特点 主要特点 shell编程风格和C语言等算法语言的区别 shell是面向命令处理的语言,提供的流程控制结构通过对一些内部命令的解释实现 如同C语言设计思路一样,shell本身设计得非常精炼,但是它提供了灵活的机制 shell许多灵活的功能,通过shell替换实现 例如:流程控制所需的条件判断,四则运算,都由shell之外的命令完成 6.1 启动B-shell 启动交互式B-shell 启动方法 注册shell 键入sh命令进入了B-shell 自动执行的批处理文件 当sh作为注册shell被启动时,自动执行用户主目录下的.profile文件中命令,记作$HOME/.profile 类似umask之类的命令,应当写在.profile文件中 sh脚本的执行 编辑文件lsdir(格式为文本文件) #!/bin/sh if [ $# = 0 ] then dir=. else dir=$1 fi find $dir -type d –print 执行这一脚本(script)文件的方法: shlsdir sh lsdir chmod u+x lsdir; ./lsdir /bin 三种方法均启动程序/bin/sh,生成新进程 6.2 重定向与管道 输入重定向 filename 从文件filename中获取stdin 例如: sort telno.txt word 从shell获取数据直到再次遇到定界符word cat TOAST * Now : `date` * My Home Directory is $HOME TOAST 执行结果 * Now : Sat Jul 27 14:47:56 Beijing 2006 * My Home Directory is /usr/jiang 定界符所界定内容加工处理(等同双引号处理): 变量替换,命令替换 不执行文件名生成 输出重定向 filename 将stdout重定向到文件filename 2 filename 将文件句柄2重定向到文件filename 21 将文件句柄2重定向到文件句柄1指向的文件 sh允许对除0,1,2外其它文件句柄重定向 输出重定向(例1) ls -l file.list 将命令ls标准输出stdout定向到文件file.list中 cc try.c -o try 2 try.bugs 将cc命令的stderr重定向到文件try.bugs中 try try.out 2try.err try 1 try.out 2try.err 将try程序执行后的stdout和stderr分别重定向到不同的文件 sh输出重定向(例2) try rpt 21 stdout和stderr均存入文件rpt 输出重定向(例3:源程序) 缓冲I/O #include stdio.h char *msg = Msg from file descripter 5\n; main() { FILE *f = fdopen(5, w); if (f) fprintf(f, %s, msg); } 原始I/O char *msg = Msg from file descripter 5\n; main() { write(5, msg, strlen(msg)); } 输出重定向(例3:程序执行) 编译和执行 cc msg.c -o msg ./msg ./msg 51 ./msg rpt 51 文件句柄5重定向到文件句柄1指向的文件 管道 ls -l | grep ^d 前一命令的stdout作后一命令的stdin cc try.c -o try 21 | more 前一命令的stdout+stderr作为下一命令的stdin 6.3 变量 sh变量 存储的内容 字符串(对于数字串来说,不是二进制形式) 在执行过程中其内容可以被修改 变量名 第一个字符必须为字母 其余字符可以是字母,数字,下划线 变量的赋值和引用 简单赋值与引用 addr=20.1.1.254 echo $addr 注意:赋值作为单独一条命令,等号两侧不许多余空格 引用addr变量$addr,echo执行前,sh完成变量替换 赋值时,等号右侧字符串中含有特殊字符, unit=”Beiyou University” echo $unit 引用未定义变量,变量值为空字符串 echo Connec

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档