电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第6章 B-Shell及编程

70页
  • 卖家[上传人]:我***
  • 文档编号:137911995
  • 上传时间:2020-07-12
  • 文档格式:PPT
  • 文档大小:305.50KB
  • / 70 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第6章 第1页,第6章 B-Shell及编程,第6章 第2页,主要内容,主要目的 编写shell脚本程序 交互方式下使用shell的流程控制,编写复合命令 主要内容 元字符,如:引号 shell的变量替换,命令替换,文件名生成 shell变量 流程控制 子程序,第6章 第3页,主要特点,主要特点 shell编程风格和C语言等算法语言的区别 shell是面向命令处理的语言,提供的流程控制结构通过对一些内部命令的解释实现 如同C语言设计思路一样,shell本身设计得非常精炼,但是它提供了灵活的机制 shell许多灵活的功能,通过shell替换实现 例如:流程控制所需的条件判断,四则运算,都由shell之外的命令完成,第6章 第4页,6.1 启动B-shell,第6章 第5页,启动交互式B-shell,启动方法 注册shell 键入sh命令进入了B-shell 自动执行的批处理文件 当sh作为注册shell被启动时,自动执行用户主目录下的.profile文件中命令,记作$HOME/.profile 类似umask之类的命令,应当写在.profile文件中,第6章 第6页,sh脚本的执行,编辑

      2、文件lsdir(格式为文本文件) #!/bin/sh if $# = 0 then dir=. else dir=$1 fi find $dir -type d print (参见p68) 执行这一脚本(script)文件的方法: shlsdir sh lsdir chmod u+x lsdir; ./lsdir /bin 三种方法均启动程序/bin/sh,生成新进程,第6章 第7页,6.2 重定向与管道,第6章 第8页,输入重定向,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 定界符所界定内容加工处理(等同双引号处理): 变量替换,命令替换 不执行文件名生成,第6章 第9页,输出重定向, filename

      3、将stdout重定向到文件filename 2 filename 将文件句柄2重定向到文件filename 2 main() FILE *f = fdopen(5, w); if (f) fprintf(f, %s, msg); 原始I/O char *msg = Msg from file descripter 5n; main() write(5, msg, strlen(msg); ,第6章 第13页,输出重定向(例3:程序执行),编译和执行 cc msg.c -o msg ./msg ./msg 5 cat config.ap #!/bin/sh echo Input IP address of server computer: c read addr ed myap.cfg /dev/null TOAST /SERVER .d i SERVER $addr . w q TOAST,第6章 第21页,脚本程序中的行编辑(2),$ ./config.ap Input IP address of server computer: 202.112.67.213 $ cat myap.

      4、cfg ID 3098 SERVER 202.112.67.213 TCP-PORT 3450 TIMEOUT 10 LOG-FILE /usr/adm/myap.log $,第6章 第22页,环境变量和局部变量,默认类型 所创建的shell变量,默认为局部变量 内部命令export 局部变量转换为环境变量,例如: export proto 局部变量和环境变量 shell启动的子进程继承环境变量,不继承局部变量 子进程对环境变量的修改,不影响父进程中同名变量 相关命令set/env 内部命令set列出当前所有变量及其值 包括环境变量和局部变量 外部命令/bin/env列出环境变量及其值,第6章 第23页,环境变量:shell/C程序,$chmod u+x stat.report; cat stat.report echo My Computer Connected to $proto Networks $ cc myap.c -o myap; cat myap.c main() char *envstr = getenv(”proto”); printf(”Protocol is %s

      5、n”, envstr ? envstr : “?”); $proto=TCP/IP $./stat.report 启动一个子进程sh My Computer Connected to Networks $./myap启动一个子进程myap Protocol is ? $export proto $./stat.report My Computer Connected to TCP/IP Networks $./myap Protocol is TCP/IP,第6章 第24页,系统的环境变量,创建 登录后系统自动创建一些环境变量影响应用程序运行 HOME:用户主目录的路径名 PATH:命令查找路径 与DOS不同的是,它不首先搜索当前目录 PATH=/bin:/usr/bin:/etc PATH=./:/bin:/usr/bin:/etc 先搜索当前目录 PATH=/:bin/usr/bin:/etc:./ 后搜索当前目录 PS1和PS2:主提示符和副提示符sh 副提示符:当一个命令在一行内输不完需几行输入一个命令时,第2行及其它行用副提示符 TERM:终端类型 全屏幕操作的软件(如vi)

      6、,使用它搜索终端库,第6章 第25页,6.4 替换,第6章 第26页,shell替换,Shell的替换工作:先替换命令行再执行命令 文件名生成 变量替换 命令替换 文件名生成 遵循文件通配符规则,按照字典序排列 如: ls *.c 文件名替换后实际执行ls a.c x.c 变量替换 ls $HOME echo ”My home is $HOME, Terminal is $TERM”,第6章 第27页,shell替换:命令替换,用反撇号 now=date 以命令date 的stdout替换date ./arg date 实际执行 ./arg Sun Dec 4 14:54:38 Beijing 2006 frames=expr 5 + 13 echo $frames 18 count=10 count=expr $Count + 1 echo $count 11,第6章 第28页,shell内部变量:位置参数,$0 脚本文件本身的名字 $1 1号命令行参数 $# 命令行参数的个数 $* ”$1 $2 $3 $4 .” $ ”$1” ”$2” ”$3” ,第6章 第29页,位置参数使用举

      7、例,$ cat param echo $# echo Usage: $0 arg1 arg2 . ./arg $ ./arg $* $ ./param Copy Files to $HOME 4 Usage: ./param arg1 arg2 . 0:./arg 1:Copy 2:Files 3:to 4:/usr/jiang 0:./arg 1:Copy Files to /usr/jiang,第6章 第30页,6.5 元字符,第6章 第31页,shell元字符(1),空格,制表符 命令行参数的分隔符 回车 执行键入的命令 | 重定向与管道 (还有|) ; 用于一行内输入多个命令(还有;) ls -l file list vi 2 在当前shell中执行命令表list 注意:左花括号后面必须有一个空格 与()的区别 如果将上例中的 改成(),那么执行结果如下: /usr/jiang Current Directory is /usr/bin 400 files /usr/jiang,第6章 第48页,复合命令:举例,使用时,多行并为一行不要漏掉必需的空格和分号 -f core ,第

      8、6章 第49页,条件结构if,语法 if condition then list elif condition then list else list fi 其中if/then/elif/else/fi为关键字(内部命令) 当条件判断后需要两个或多个分支时, then,第6章 第51页,case结构,基于文件名匹配基础上的多条件分支,语法: case word in pattern1) list1; pattern2) list2; . esac word与pattern匹配:使用shell的文件名匹配规则 ;是一个整体,不能在两分号间加空格,也不能用两个连续的空行代替 可以使用竖线表示多个模式 word与多个模式匹配时,执行遇到的第一个命令表,第6章 第52页,case结构:举例,语法 case $1 in START|start) . (一段程序) ; STOP|stop) . (一段程序) ; *) echo Usage: $0 start|stop ; esac 注意:本例中case句中$1要加上双引号,第6章 第53页,6.7 循环结构,第6章 第54页,while结构,语法

      9、 while condition do list done 例1 while test -r lockfile do sleep 5 done 下例有错 while test -r lockfile do sleep 5 done 例2 while -r lockfile ; do sleep 5;done,第6章 第55页,命令expr:表达式计算,功能:求表达式的值 shell本身不提供数学运算和字符串运算的能力,这些运算借助命令expr完成 算数运算 + - * / % () 注意 应该转义的地方必须加反斜线转义 应该有空格的地方不允许漏掉。 例1:求变量a*(b+c) 正确的写法为 expr $a * ( $b + $c ),第6章 第56页,命令expr:算数运算(例),if $# = 0 then echo Usage: $0 : else count=$1 while $count -gt 0 do count=expr $count - 1 echo -e 015 $count c sleep 1 done fi,第6章 第57页,命令expr:字符串运算,用法: expr string : pattern 正则表达式pattern匹配字符串string,打印匹配长度 pattern中用(和)括起一部分,能匹配时打印括号内能匹配的部分,否则为空字符串 举例 expr 123 : 0-9* 结果为3 expr A123 : 0-9* 结果为0,第6章 第58页,命令expr:字符串运算(例),设tty命令输出类似/dev/tty6的结果 expr tty : /dev/tty(.*) expr tty : /dev/tty(.*) termno=expr tty : /dev/tty(.*) expr $unit : .* 返回变量unit的长度 expr pwd : .*/(/*)$ 截取路径名的最后一个分量,第6章 第59页,for结构,语法1 for name in word1 word2 . do list done 语法2 for name do list done 相当于 for na

      《第6章 B-Shell及编程》由会员我***分享,可在线阅读,更多相关《第6章 B-Shell及编程》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
  • 2020届中考英语备考复习-作文课件

    2020届中考英语备考复习-作文课件

  • 2019年中考英语复习-专题十五-交际运用(试卷部分)课件

    2019年中考英语复习-专题十五-交际运用(试卷部分)课件

  • 2019届二轮复习-高中英语-情态动词和虚拟语气课件

    2019届二轮复习-高中英语-情态动词和虚拟语气课件

  • 2019届一轮复习苏教版物质的跨膜运输课件

    2019届一轮复习苏教版物质的跨膜运输课件

  • 2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

    2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

  • 2021届新中考物理冲刺备考复习-力-弹力-重力课件

    2021届新中考物理冲刺备考复习-力-弹力-重力课件

  • 2019届一轮复习人教版种群的特征和数量变化课件

    2019届一轮复习人教版种群的特征和数量变化课件

  • 2020年高考地理一轮复习--等高线地形图-课件

    2020年高考地理一轮复习--等高线地形图-课件

  • 2019版高考英语一轮复习-Unit-1-Living-well课件

    2019版高考英语一轮复习-Unit-1-Living-well课件

  • 2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

    2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

  • 2019届高三第二轮复习专题二万有引力定律及其应用课件

    2019届高三第二轮复习专题二万有引力定律及其应用课件

  • 2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

    2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

  • 2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

    2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

  • 2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

    2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

  • 2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

    2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

  • 2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

    2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

  • (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

    (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

  • 2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

    2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

  • 2021人教部编版历史九年级上册习题课件:第18课美国的独立

    2021人教部编版历史九年级上册习题课件:第18课美国的独立

  • 2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

    2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

  • 点击查看更多
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.