第六章 shell 程序调试 一. 程序执行状态跟踪 程序: -n 读取命令, 但不执行. 主要用于跟踪程序流程是

Slides:



Advertisements
Similar presentations
柳丁 — 加工篇 組員 : 賴緯杰、賴苗家、吳 玠穎、鐘尹敏. 柳丁的產地  台灣特產的柳丁從台南、嘉 義、雲林、南投都有耕種, 其中雲林古坑的柳丁占總產 量三分之ㄧ,是最大的產區, 可號稱為「柳橙之鄉」。
Advertisements

七年级数学校本课程 台山市任远中学 李锦明. 1. 最古老的过河问题 1. 最古老的过河问题 一个农民携带一只狼,一只羊和一 箱卷心菜,要借助一条小船过河。 小船上除了农民只能再带狼、羊、 卷心菜中的一样。而农民不在时, 狼会吃羊,羊会吃菜。农民如何过 河呢?
請按左鍵換頁 為人的藝術 ~善緣貴人多~ 廣結善緣 1. 有什麼觀念,就有什麼行為; 有什麼行為,就有什麼習慣; 有什麼習慣,就有什麼性格; 有什麼性格,就有什麼命運。 2. 對長輩謙虛是本分,對平輩謙虛是修養, 對 晚輩謙虛是高貴,對所有人謙虛是安全。 3. 廣結善緣,圓融的人際關係( EQ ):
专题复习 --- 走进名著 亲近经典 读完《鲁滨孙漂流记》这本精彩的小说 后,一个高大的形象时时浮现在我的眼 前,他就是勇敢的探险家、航海家鲁滨 孙。他凭着顽强的毅力,永不放弃的精 神,实现了自己航海的梦想。 我仿佛看到轮船甲板上站着这样的一 个人:他放弃了富裕而又舒适的生活, 厌恶那庸庸碌碌的人生,从而开始了一.
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
國中教育會考說明 年 5 月 14 日(六) 105 年 5 月 15 日(日)  08:20- 08:30 考試說明  08:20- 08:30 考試說明  08:30-  09:40 社 會  08:30-  09:40 自 然 09:40- 10:20 休息 09:40-
电子商务专业人才培养方案 五年制高职. 一、招生对象、学制与办学层次  (一)招生对象:初中毕业生  (二)学制:五年  (三)办学层次:专科.
第一节 人口的数量变化.
德 国 鼓 励 生 育 的 宣 传 画.
幼小課程統合與銜接 楊朝祥 中原大學講座教授.
郭恬君 廖書緣 莊雅嵐 陳韻伃 莊靜茵 賴禹綺 郭佳旻 陳定男 劉彥岱
知识聚焦 光合作用 呼吸作用 条件 场所 原料 产物 物质变化 能量变化 有光无光都可以 需要光 主要是线粒体 叶绿体 二氧化碳、水
控制方长投下的子公司,需要编制合并报表的演示思路
假冒专利罪的提起与界定 北京张黎律师事务所 二00九年十一月.
機關改制(含員工權益保障)業務簡介 報告人:王奐寅 100年6月24日.
追求阳光心态 做一个心理健康的人 上海市徐汇区精神卫生中心 吴洪明.
上課教材 Database Slide Windows筆電 (32 bit)
8 企业信息管理的定量分析 第八讲 企业信息管理的定量分析 8.1 企业信息化水平的测评 8.2 企业信息管理绩效的测评.
前进中的山东省昌乐二中.
保良局何壽南小學 學校經驗分享: 學生成長的支援
主講者:林妙容 國立暨南國際大學 輔導與諮商研究所專任助理教授
第五章 心理应激与心身疾病 护理学院 王芳.
教师应做学生的心理保健师 (之三) 昆明市心桥心理健康研究所 钱锡安
第七章 操作系统接口 7.1 联机用户接口 7.2 Shell命令语言 7.3 系统调用 7.4 UNIX系统调用 7.5 图形用户接口.
第五课 让挫折丰富我们的人生 挫折面前也从容.
國中小教師甄試相關事宜 心理的準備 甄試日期 甄試方式 甄試內容 正式教師與代課教師差別 相關問題 關起門來說的問題 結語.
校 長 翁世盟 家長會長 蔡宏奕 教師會長 葉蕙境 敬上
Linux 的檔案管理.
北京东阳乐康医药科技有限公司.
課程內容 態度決定高度 履歷及面試重點提要 履歷 面試服裝及注意事項 性向分析 性向分析測驗.
项目2-1 店铺的定位.
香港明愛 綜合家居照顧服務 PWD個案分享.
公主的月亮 最近看了一本友人劉清彥譯的書〔公主的月亮〕,極有趣味。 這個難題由一個生病的小公主提出,她嬌憨的告訴疼她的國王,
公主的月亮 最近看了一本友人劉清彥譯的書〔公主的月亮〕,極有趣味。 這個難題由一個生病的小公主提出,她嬌憨的告訴疼她的國王,
為人的藝術 ~善緣貴人多~ 請按左鍵換頁.
為人的藝術 ~善緣貴人多~ 請按左鍵換頁.
权力的行使:需要监督 北京市京源学校 冯 悦.
EQ劇場 ~ 李爾王.
System Administration Practice Homework 2: Shell Programming
Confidential Property
用教学实践解读课程标准.
第三讲 shell 程序设计.
台灣大學計算機及資訊網路中心 教學研究組 張傑生
Shell Script 程式設計.
Shell程序设计 曙光信息产业股份有限公司.
第五章 shell 编程 shell 编程的基本过程分为三步: 1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文本
Linux 基础与常用命令简介 生物信息学培训班 杭州,2018年1月18日 周银聪.
第二天 计算机基础技能培训 (一)linux基础知识
编译原理与技术 词法分析(1) 2018/11/28 《编译原理与技术》讲义.
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
第三章 词法分析.
第12章 shell编程基础 本章主要介绍shell编程的基础知识。shell脚本的执行类似于Linux下的任何其他命令,脚本可以包含复杂的逻辑,也可以包含一系列Linux命令行指令。在一个shell程序内可以运行其他shell脚本。通过本章的学习,读者可以学到如何使用bash(最流行的Linux.
如何有效率的學習Linux 培養組合能力 多用程式, 少寫程式 從錯誤訊息中學習 養成略讀 “各種文件” 加強英文基本閱讀能力 勤作筆記
第二章 流编辑器sed 一. 什么是流编辑器? 流编辑器是一种流水线型的、非交互式
第三章 UNIX的文件与目录.
第六章 Shell基础.
UNIX指令-檔案與目錄操作.
面試的準備 1.
杨振伟 清华大学 第一讲:Linux环境下编程(1)
沙田聖本篤堂 家庭牧民小組 簡介. 沙田聖本篤堂 家庭牧民小組 簡介 成立過程: 2000年教區會議期間,甘寶維神父邀請數對活躍於堂區夫婦商討籌辦家庭牧民小組的可行性 2000/01年間舉辦數次「家事談論會」凝聚有意投身服務人士,小組開始成型.
Compute System Administration Homework 2: Shell Script
100學年度上學期 月亮班課程規劃.
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
香港大學教育應用資訊科技發展研究中心 資訊年代青年自學才能拓展計劃 (S計劃)
实验二:添加Linux系统调用及熟悉常见系统调用
班級經營--實務:疑難雜症 組員: 周雅文 李桂枝 顏純郁 黃福裕 戴曉真
杨振伟 清华大学 第一讲:Linux环境下编程(1)
Unix指令2.
高雄市104學年度國民中學 童軍教育聯團露營 活動組簡報
Presentation transcript:

第六章 shell 程序调试 一. 程序执行状态跟踪 程序: -n 读取命令, 但不执行. 主要用于跟踪程序流程是 一. 程序执行状态跟踪 利用set命令的任选项特定功能来跟踪调试shell 程序: -n 读取命令, 但不执行. 主要用于跟踪程序流程是 否在特定条件下执行到这里(断点设置). -v 在执行shell程序的同时, 把从shell程序中读入的 行显示出来. 用于跟踪shell程序的执行流程. -x 显示正在执行的语句及其变量的值. 用于动态 跟踪变量的值.

实例1. 程序运行语法为: prog_v [arg1 arg2 ….] $ cat prog_v set -v if [ $# -eq 2 ] then echo "correct argument number: $#" else echo "wrong argument number: $#" fi $ prog_v aa bb correct argument number: 2 显示读入的各语句 程序运行结果

如将程序第一行改为set -vx 将会什么结果? 实例2: 程序运行语法为: prog_x [arg1 arg2 ….] $ cat prog_x set -x if [ $# -eq 2 ] then echo "correct argument number: $#" else echo "wrong argument number: $#" fi $ prog_v aa bb cc ++ '[' 3 -eq 2 ']' ++ echo 'wrong argument number: 3' wrong argument number: 3 执行(而非读入)的语句及变量的值 程序的执行结果 如将程序第一行改为set -vx 将会什么结果?

在报警及时性和减轻系统负载之间合理设定间隔时间 二. 运行日志文件的建立和跟踪 利用运行日志文件记录和跟踪程序的中间状态和结果,例如: run_log=$HOME/log/prog1.log echo "[程序名] Entry Time:`date`" >> $run_log …… echo " [参数名:参数值]" >> $run_log command > data_file 2>> $run_log echo "Exit Time:`date`" >> $run_log 注意:状态信息是追加, 而不是覆盖日志文件. 可由另一程序(进程) 定时跟踪监测日志文件, 检测到某些关键字后报警, 例如: while true do status=`grep error $run_log` If [ -n "$status" ] Then 报警处理 fi sleep 300 done 或是warning等关键字 闪烁字符、反白显示、喇叭响铃等 在报警及时性和减轻系统负载之间合理设定间隔时间

三. 语句组的应用规则和限制 在shell程序中,常常使用包含多条语句的语句 组来完成某一特定的功能,由此来优化程序的结构。 三. 语句组的应用规则和限制 在shell程序中,常常使用包含多条语句的语句 组来完成某一特定的功能,由此来优化程序的结构。 语句组作为相对独立的程序模块,可被当作单条命 令或函数来应用。 需要特别注意的是,命令组的标准输出被重新 定向时,命令组中的所有命令的输出都将被重新定 向。 命令组的标准输入被重新定向时, 则根据命令 组中各命令的先后次序, 输入数据先满足第一个需 要输入数据的命令, 剩下的数据再满足第二个要输 入数据的命令, …依此类推.

语句组格式一: (command1; command2; … commandn) > outfile 例如: (echo "current dir is `pwd`" echo "files in the dir:" ls –l ) > outfile 文件outfile中的内容为: current dir is /home/teacher/zhanglan files in the dir: total 5 drwxr-xr–x 2 zl teacher 516 Jul 11 18:46 src -rw-r- -r- - 1 zl teacher 73 Sep 05 12:35 file1 -rwxr-xr-x 1 zl teacher 82 Sep 05 21:08 tst9 三条命令的输出都被重新定向到了文件outfile中.

语句组格式二: (command1; command2; … commandn) < datafile 或者: command | (command1; command2; …. commandn) 例如: ps -e | (read title; echo $title; grep student6) . read命令先读入ps命令输出结果的第一行 . grep命令从ps命令输出结果的第二行开始查找包含字符 串student6的行

语句格式三: while command1 command2 … commandn 语句组的运行结果作为条件表达式的值 do 循环体命令表 done 每次循环时, 都要执行一遍command1至commandn, 并根据 commandn的执行结果(退出状态)来作为整个while循环的 条件测试值, 判断是否进入下一轮循环. 语句组的运行结果作为条件表达式的值

例如: num=1 while pwd date ls –l | sort > filelist test $num -ne 6 do ……. num=`expr $num + 1` done 虽然每次循环时都要执行pwd、date和 ls 命令,但只有test 命令的执行结果才能决定是否进入下一轮循环.

datafile是整个while循环(语句组)的输入文件, 而不是语句done的输入文件. 语句格式四: while 条件表达式 do 循环体命令表 done < datafile 例如: i=1 while read id name component echo "$i UID: $id name: $name" i=`expr $i + 1` done < userlist 从userlist文件中每读入一行, 就执行一次循环体, 直到读到 userlist的文件尾. datafile是整个while循环(语句组)的输入文件, 而不是语句done的输入文件.

谢 谢 2019年4月7日