网站大量收购独家精品文档,联系QQ:2885784924

第7讲SHELL的重定向和管道.ppt

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

csh提示符 程序的标准输入/输出 使用原始I/0的程序举例 使用缓冲I/0的程序举例 csh输入重定向 csh输出重定向 csh输出重定向(续) csh输出重定向(续2) csh管道 csh管道(续) 交互式B-shell的启动 sh脚本的执行 sh输入重定向 sh输入重定向(举例) sh输出重定向 sh输出重定向:举例1 sh输出重定向:举例2 sh输出重定向:程序举例1 sh输出重定向:程序举例2 sh输出重定向:程序执行 sh管道 演示 * csh的提示符由csh的变量prompt控制。 prompt变量值(是一个字符串)中的!,在实际显示时以命令号代替。 set prompt=”[\!]%” 在!前加\以取消csh对!的特殊解释,实际上变量prompt的值为[!]%串 main() /* 使用原始I/0 */ { static char *strl= ”string1\n”; static char *str2= ”string2\n”; int i; for(i=0;i20;i++) { write(1,strl,strlen(str1)); write(2,str2,strlen(str2)); } exit(0); } #include stdio.h main() /* 使用缓冲I/O */ { static char *str1= ”STRING1\n”; static char *str2= ”STRING2\n”; int i; for (i=0;i20;i++) { printf(str1); /* 或:fprintf(stdout,str1); */ fprintf (stderr,str2); } exit(0); } 从文件中获取stdin 文件 从文件中获取stdin 例:cat list.txt 从shell中获取stdin 定界符 从shell中获取stdin直到遇到定界符 例: catEOF ABCD EFGH EOF 文件 把stdout重定向到一个文件中 例如: ps -ef proc.list 文件 把stderr合并到stdout,然后重定向到文件中 举例: cc -c try.c -o try err.list 文件 文件 文件已存在则附加到文件尾 csh变量noclobber:保护已存在的文件 set noclobber unset noclobber ! 文件名 ! 文件名 ! 文件名 ! 文件名 命令1 | 命令2 把前面命令的stdout管道成下一命令的stdin 举例: ps -ef | grep liang 命令1 | 命令2 把stderr合并到stdout然后管道到下一命令 举例: cc -c try.c -o try | more 1. 在命令提示符下键入sh命令 程序文件为/bin/sh 2. 注册shell 当sh作为注册shell被启动时,会自动执行用户 主目录下.profile文件中命令 文件lsdir(格式为文本文件) if [ $# = 0 ] then dir=. else dir=$1 fi find $dir -type d –print 执行这一脚本(script)文件的方法: 1. shlsdir 2. sh lsdir 3. chmod u+x lsdir; ./lsdir /bin 三种方法均启动程序/bin/sh,生成新进程 文件 从文件中获取stdin 例如: sort telno.txt 定界符 从shell中获取数据,直到再次遇到定界符为止 cat TOAST Now : `date` My Home Directory is $HOME Good bye! TOAST 上述命令执行结果为: Now : Sat Jul 27 14:47:56 Beijing 2001 My Home Directory is /usr/jiang Good bye! 对定界符所界定内容作加工处理(等同双引号处理):变量替换,命令替换,不作文件名生成 将stdout重定向到文件 2 将文件句柄2重定向到文件 21 将文件句柄2重定向到文件

文档评论(0)

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

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

1亿VIP精品文档

相关文档