嵌入式linuxshell脚本

上传人:宝路 文档编号:48270296 上传时间:2018-07-12 格式:PPT 页数:73 大小:4.38MB
返回 下载 相关 举报
嵌入式linuxshell脚本_第1页
第1页 / 共73页
嵌入式linuxshell脚本_第2页
第2页 / 共73页
嵌入式linuxshell脚本_第3页
第3页 / 共73页
嵌入式linuxshell脚本_第4页
第4页 / 共73页
嵌入式linuxshell脚本_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《嵌入式linuxshell脚本》由会员分享,可在线阅读,更多相关《嵌入式linuxshell脚本(73页珍藏版)》请在金锄头文库上搜索。

1、 1、vi与vim2、认识bash(shell程序)3、shell script所有的 Unix Like 系统都会内建 vi 文书编辑器 ,其他的文书编辑器则不一定会存在;vim 具有程序编辑的能力,可以主动的以字体颜色 辨别语法的正确性,方便程序设计; 因为程序简单,编辑速度相当快速。Vi不是一个排版软件,它只是一个文本编辑程序。Vim是vi的一个改进版本,程序编辑器。一般模式: 以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模 式中, 可以使用命令移动光标,删除命令来处理档案内容, 也可以使用 复制、贴上来处理你的文件数据。编辑模式: 在一般模式中可以进行删除、复制

2、、贴上等等的动作,但是却无法编辑文 件内容的! 要等到你按下i, I, o, O, a, A, r, R等任何一个字母 之后才会进入编辑模式。而如果要回到一般模式时, 则必须要按下Esc 这个按键即可退出编辑模式。命令模式: 在一般模式当中,输入 : / ? 三个中的任何一个按钮,就可以将光 标移动到最底下那一行。在这个模式当中, 可以提供你搜寻资料的 动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则 是在此模式中完成的!一般模式光标移动搜索与替换删除字符删除行复制或粘贴行编辑模式以插入或替换来编辑 文本内容命令行模式读取/保存文件 退出或额外功能iIoOaA(插入): /

3、 ?ESCESC进入vim编辑器vim test.sh退出vim编辑器:q,:q!,:wq (或ZZ ),:e!:w filename命令描述 $将光标移动到当前行的行末0将光标移动到当前行的行首 n|将光标移动到当前行的第n个字符上fm将光标移动到文本的下一个字符m命令描述Ctrl+f屏幕向下翻动一页Ctrl+b屏幕向上翻动一页命令描述 h左移一个字符 j下移一个字符 k上移一个字符 l右移一个字符 w移到下一个单词的开头 b移到上一个单词的开头命令描述nG移动到第n行G移动到最后一行:set number显示行号:set nonumber不显示行号命令描述u命令可以撤销前一次的操作U可以撤

4、销对当前行的所有修改Ctrl+r 重做上一次操作 :e!恢复文件到初始状态命令类型删除替换字符x(向后,delete )X(向前, Backspace)r单词dwcw行ddcc光标到行尾部分DCR:会一直替换光标所在的字符,直到按下ESC为止命令描述 yy复制光标所在的那一行 nyy复制光标所在的向下n行 P(小)在光标下一行粘贴 P(大)在光标上一行粘贴:rangs/search/replace/cegi rang:表示范围,比如:1,7:第1行到7行;1,$: 表示第1行到最后一行,%。 c:确认。 e:不显示错误信息。 g:当前行整行替换 i:不分大小写:?chroot 反向查找 :/c

5、hroot 正向查找 n上一个,N下一个新增(append) 按a键,从光标所在位置后面开始输入新文本。 按A键,从光标所在行的行尾输入新文本。插入(insert) 按i键,从光标所在位置前面开始输入新文本。 按 I键,从第一个非空格字符前面开始插入。开始(open) 按o键,在光标所在行下方新增一行输入。 按O键,在光标所在行上方新增一行输入。Shell是操作系统中运行 的程序,与系统中的其 他程序不同,Shell程序 位于操作系统内核与用 户之间,负责接收用户 输入的命令,在对已输 入放入命令解释,将需 要执行的命令程序传递 给操作系统内核执行, 因此Shell程序充当了一 个“命令解释器

6、”。BshKshBashCshBsh在20世纪70年代中期诞生于新泽西的 AT连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不 相同)$取用变量前导符:亦即是变量之前需要加的变量取代值!逻辑运算意义上的非 not 的意思!,数据流重导向:输出导向,分别是取代与累加或 ; 3. 标准错误输出(stderr):代码为 2 ,使用 2 或 2 ; :以覆盖的方法将正确的数据输出到指定的 文件或装置上;:以累加的方法将正确的数据输出到指定 的文件或装置上;2 :以覆盖的方法将错误的数据输出到指定 的文件或装置上;2:以累加的方法将错误的数据输出到指定 的文件或装置上;注意: 2 中间是没有

7、空格的要将错误信息忽略掉而不显示或储存呢? 这个时候 黑洞装置 /dev/null 就很重要了!这个 /dev/null 可以吃掉任何导向这个装置的信息喔!将正确与错误数据通通写入同一个文件去: find /home -name .bashrc list 2; =每个类型结尾使用两个连续的分号来处理! “第二个变量内容“) 程序段 ; *) =最后一个变量内容都会用 * 来代表所有其他值 不包含第一个变量内容与第二个变量内容的其他程序执行段 exit 1 ; esac =最终的 case 结尾!反过来写思考一下!模式匹配: * 表示任意字符 ? 表示任意单个字符abc a、b 或 c 三字符其

8、中之一a-n 从a到n的任一字符| 多重选择 语法格式:注: 使用变量名访问列表中取值。 in列表用法是可选的,如果不用它, for循环使用命令行的位置参数。 in列表可以包含替换、字符串和文件名for var in con1 con2 . do 程序段 done For(数值处理)for ( 初始值;限定值;执行步阶 ) do 程序段 done u 初始值:某个变量在循环当中的起始值,直接以类似 i=1 设置好 ; u 限定值:当变量的值在这个限定值的范围内,就继续执行循环。例 如 i=100; u 执行步阶:每作一次循环时,变量的变化量。例如 i=i+1。 语法格式:while condi

9、tion =中括号内的状态就是判断式(如果为真 则执行循环体) do =do 是循环的开始! 程序段落 done =done 是循环的结束 break 跳出循环continue 不会跳出循环,跳过本次循环,进入下一 次循环例:#!/bin/sh #breakoutwhile : doecho n “Enter any number 15:” read ANS case $ANS in 1|2|3|4|5) echo “您键入正确的数字.” ; *) echo “错误的输入” break ; esac done:表示永远为 真例:#!/bin/sh #breakout while : doech

10、o n “Enter any number 15:” read ANS case $ANS in 1|2|3|4|5) echo “您键入正确的 数字.”; *) echo “错误的输入, 是否继续(y/n)?”read IS_CONTINUE case $IS_CONTINUE in y|yes|Y|YES)continue ; *) break ; esac esac done向脚本传递参数时,有时需要将设一个参 数偏移以处理选项,这就是shift命令的功能。 shift每次将参数位置向左偏移一位。 #!/bin/bash #shift loop=0 while $# -ne 0 doec

11、ho $1shift done例 :shell允许将一组命令集或语句形成一个可用块 ,这些块称为 shell函数。函数定义 函数的返回函数文件检查载入和删除函数函数是一种脚本内脚本可以通过函数的名字来定义一块shell代码,以便在 以后方便地调用使用函数而不是一个新的脚本可以大大加快处理速 度使用函数可以方便地组织程序情况一: 函数名()命令1命令2 情况二: function 函数名 命令1命令2 执行函数时,它保留当前shell和内存信息。此外如果执行或调用一个脚本文件中的另一段代码 ,将创建一个单独的shell,因而去除所有原脚本中 定义的存在变量。函数可以放在同一个文件中作为一段代码,

12、也可以 放在只包含函数的单独文件中。#!/bin/bash # func1 hello() echo “hello there todays date is date“ echo “now going to the function hello“ hello #调用hello函数 echo “back from the function“注意:函数在使用前必须定义eg1 :#!/bin/bash # func1 hello() echo “hello $1, there todays date is date“ echo “now going to the function hello“ he

13、llo jack echo “back from the function“eg:在函数中处理和在普通脚本中处理参数基本一样, 使用$1等位置参数,或者$*,$#等应该注意,在函数中的$0并不表示函数名,而仍然 是脚本的文件名。函数取得所传参数后,将原始参数传回shell脚本, 因此最好先在函数内重新设置变量保存所传的参数 。函数里调用参数(变量)的转换以下划线开始,后 加变量名,如:_ FILENAME或_ filename。当函数完成处理或希望函数基于某一测试语句返回 时,可做两种处理: 1) 让函数正常执行到函数末尾,然后返回脚本中调用函 数的控制部分。 2)使用 return 返回脚本

14、中函数调用的下 一语句,可以带返回值 return:从函数中返回,用最后状态命令决定 返回值 return 0:无错误返回 return 1:有错误返回eg:#!/bin/bash #hellofunction function hello echo “你好,$1 今天是:date”return 0 echo “=“ hello echo $? echo “=“$? 取得调用 函数返回的 状态值如果不作特殊说明,在函数内访问的变量是整个脚 本共享的变量如果要定义只在函数内有效的局部变量,则需要使 用local语句#!/bin/bash start() var1=123local var2=456 start echo “$var1“ echo “$var2“将常用函数整理,放在函数文件中,并载入 shell 创建函数文件 #!/bin/sh 定位文件 . 函数名 检查载入函数 set 执行shell函数 函数名 删除shell函数 unset 函数名示例: #!/bin/sh #func . hellofun echo “=“ hello echo “=“#!/bin/sh #hellofun function hello() echo “你好, 今天是:date”return 1 示例:#!/bin/sh #func . hellofun set#表示显示载入状态 unset

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号