Shell脚本编程基础知识-PPT课件.ppt
《Shell脚本编程基础知识-PPT课件.ppt》由会员分享,可在线阅读,更多相关《Shell脚本编程基础知识-PPT课件.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux 操作系统Shell 脚本编程脚本编程为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益主要内容和学习要求主要内容和学习要求q 掌握创建 shell 脚本的基本步骤q 学会使用条件测试q 掌握 if 条件结构与 case 选择结构q 掌握 for 循环、while 循环和 until 循环结构q 学会 shift 命令的使用q 学会 shell 脚本的调试为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q Shell 脚本Shell 脚本脚本n如果有一
2、系列你经常使用的如果有一系列你经常使用的Linux命令,你可命令,你可以把它们存储在一个文件里,以把它们存储在一个文件里,shell可以读取这可以读取这个文件并顺序执行其中的命令,这样的文件被个文件并顺序执行其中的命令,这样的文件被称为脚本文件。称为脚本文件。shell 脚本脚本按行解释。按行解释。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q Shell 脚本的编写l Shell 脚本是纯文本文件,可以使用任何文本编辑器编写l Shell 脚本通常是以.sh 作为后缀名q Shell 脚本的执行chmod+x scrip
3、t_name./script_namebash script_name为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益u 第一行:指定用哪个程序来编译和执行脚本。q Shell 脚本的格式脚本的格式#!/bin/bashu 可执行语句和 shell 控制结构u 注释:以“#”开头,可独占一行,或跟在语句的后面。Shell 脚本脚本#!/bin/sh#!/bin/csh一个 shell 脚本通常由一组 Linux 命令、shell 命令、控制结构和注释语句构成。在脚本中多写注释语句是一个很好的编程习惯 为了规范事业单位聘用关系,
4、建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益#!/bin/bash#This is the first Bash shell program#ScriptName:greetings.shechoecho e Hello$LOGNAME,cecho its nice talking to you.echo Your present working directory is:pwd#Show the name of present directoryechoecho e The time is date+%T!.nByeechobash greeti
5、ngs.shchmod+x greetings.sh./greetingsShell 脚本举例脚本举例为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益echo命令n功能说明:显示文字。n语 法:echo-ne字符串 或 echo-help-version n补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号。n-n 不进行换行不进行换行n-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出 n 换行换行 b 空格空格.为了规范事业单位聘用关系,建立和完善适应社会
6、主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益参 数:n-n 不要在最后自动换行 n-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:na 发出警告声;nb 删除前一个字符;nc 最后不加上换行符号;nf 换行但光标仍旧停留在原来的位置;nn 换行且光标移至行首;nr 光标移至行首,但不换行;nt 插入tab;nv 与f相同;n 插入字符;nnnn 插入nnn(八进制)所代表的ASCII字符;n-help 显示帮助 n-version 显示版本信息为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单
7、位和职工的合法权益#!/bin/bash#This script is to test the usage of read#Scriptname:ex4read.shecho=examples for testing read=echo-e What is your name?cread nameecho Hello$nameechoecho-n Where do you work?readecho I guess$REPLY keeps you busy!echoread-p Enter your job title:#自动读给自动读给REPLYecho I thought you migh
8、t be an$REPLY.echoecho=End of the script=Shell 脚本举例脚本举例为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益read命令命令nread variable#读取变量给读取变量给variablenread x y#可同时读取多个变量可同时读取多个变量nread#自动读给自动读给REPLYnread p“Please input:”#自动读给自动读给REPLY为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益u 状态变
9、量$?中保存命令退出状态的值grep$USER/etc/passwdecho$?grep hello/etc/passwd;echo$?条件测试条件测试u 条件测试可以根据某个特定条件是否满足,来选择执行相应的任务。u Bash 中允许测试两种类型的条件:命令成功或失败,表达式为真或假u 任何一种测试中,都要有退出状态(返回值),退出状态为 0 表示命令成功或表达式为真,非0 则表示命令失败或表达式为假。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 内置测试命令 testl 通常用 test 命令来测试表达式的值x=5;
10、y=10test$x-gt$yecho$?l test 命令可以用 方括号方括号 来代替x=5;y=10$x-gt$y echo$?q 表达式测试包括字符串测试、整数测试和文件测试。测试表达式的值测试表达式的值方括号前后要留空格!为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益name=Tom$name=Tt?echo$?l 2.x 版本以上的 Bash 中可以用双方括号双方括号来测试表达式的值,此时可以使用通配符通配符进行模式匹配模式匹配。测试表达式的值测试表达式的值$name=Tt?echo$?为了规范事业单位聘用关系,建
11、立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 字符串测试字符串测试name=Tom;-z$name;echo$?操作符两边必须留空格!字符串测试字符串测试name2=Andy;$name=$name2 ;echo$?为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 整数测试,即比较大小x=1;$x-eq 1;echo$?x=a;$x-eq 1;echo$?整数测试整数测试操作符两边必须留空格!X为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度
12、,保障用人单位和职工的合法权益q 整数测试也可以使用 let 命令或双圆括号x=1;let$x=1;echo$?x=1;($x+1=2);echo$?只能用于整数测试!只能用于整数测试!整数测试整数测试l 相应的操作符为:=、!=、=、y);then echo x is larger than yelif(x=y);then echo x is equal to yelse echo x is less than yfi为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益chkperm.sh#!/bin/bash#Using th
13、e old style test command:#filename:perm_check.sh#file=testingif -d$file then echo$file is a directory elif -f$file then if -r$file-a-w$file-a-x$file then#nested if command echo You have read,write,and execute permission on$file.fielse echo$file is neither a file nor a directory.fi为了规范事业单位聘用关系,建立和完善适
14、应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益chkperm2.sh#!/bin/bash#Using the new style test command:#filename:perm_check2.sh#file=./testingif -d$file then echo$file is a directory elif -f$file then if -r$file&-w$file&-x$file then#nested if command echo You have read,write,and execute permission on$file.f
15、ielse echo$file is neither a file nor a directory.fi为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益name_grep#!/bin/bash#filename:name_grep#name=Tomif grep$name/etc/passwd&/dev/null then :else echo$name not found in/etc/passwd exit 2fi为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合
16、法权益tellme#!/bin/bashecho-n How old are you?read ageif$age-lt 0-o$age-gt 120 thenecho Welcome to our planet!exit 1 fiif$age-ge 0-a$age-le 12 thenecho Children is the flowers of the countryelif$age-gt 12-a$age-le 19 thenecho Rebel without a causeelif$age-gt 19-a$age-le 29 then echo You got the world b
17、y the tail!elif$age-ge 30-a$age-le 39 thenecho Thirty something.elseecho Sorry I askedfi为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益tellme2#!/bin/bashecho-n How old are you?read ageif(age 120)thenecho Welcome to our planet!exit 1 fiif(age=0&age=13&age=19&age=30&age 0)#or$#-gt 0 do echo
18、$*shiftdone为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益shft.sh#!/bin/bash#Using shift to step through all the positional parameters.until -z$1#Until all parameters used up.do echo$1 shiftdoneecho#Extra line feed.exit 0为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 生成随机数的特殊
19、变量生成随机数的特殊变量echo$RANDOM 范围是范围是:0,32767q expr:通用的表达式计算命令通用的表达式计算命令表达式中参数与操作符必须以空格分开,表达式中的运表达式中参数与操作符必须以空格分开,表达式中的运算可以是算术运算,比较运算,字符串运算和逻辑运算。算可以是算术运算,比较运算,字符串运算和逻辑运算。expr 5%3expr 5*3#乘法符号必须被转义乘法符号必须被转义随机数和随机数和 expr 命令命令为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 字符串操作字符串操作注:注:pattern,ol
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Shell 脚本 编程 基础知识 PPT 课件
限制150内