欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Shell脚本编程基础知识-PPT课件.ppt

    • 资源ID:88490209       资源大小:216.50KB        全文页数:74页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Shell脚本编程基础知识-PPT课件.ppt

    Linux 操作系统Shell 脚本编程脚本编程为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益主要内容和学习要求主要内容和学习要求q 掌握创建 shell 脚本的基本步骤q 学会使用条件测试q 掌握 if 条件结构与 case 选择结构q 掌握 for 循环、while 循环和 until 循环结构q 学会 shift 命令的使用q 学会 shell 脚本的调试为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q Shell 脚本Shell 脚本脚本n如果有一系列你经常使用的如果有一系列你经常使用的Linux命令,你可命令,你可以把它们存储在一个文件里,以把它们存储在一个文件里,shell可以读取这可以读取这个文件并顺序执行其中的命令,这样的文件被个文件并顺序执行其中的命令,这样的文件被称为脚本文件。称为脚本文件。shell 脚本脚本按行解释。按行解释。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q Shell 脚本的编写l Shell 脚本是纯文本文件,可以使用任何文本编辑器编写l Shell 脚本通常是以.sh 作为后缀名q Shell 脚本的执行chmod+x script_name./script_namebash script_name为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益u 第一行:指定用哪个程序来编译和执行脚本。q Shell 脚本的格式脚本的格式#!/bin/bashu 可执行语句和 shell 控制结构u 注释:以“#”开头,可独占一行,或跟在语句的后面。Shell 脚本脚本#!/bin/sh#!/bin/csh一个 shell 脚本通常由一组 Linux 命令、shell 命令、控制结构和注释语句构成。在脚本中多写注释语句是一个很好的编程习惯 为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益#!/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 greetings.shchmod+x greetings.sh./greetingsShell 脚本举例脚本举例为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益echo命令n功能说明:显示文字。n语 法:echo-ne字符串 或 echo-help-version n补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号。n-n 不进行换行不进行换行n-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出 n 换行换行 b 空格空格.为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益参 数:n-n 不要在最后自动换行 n-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:na 发出警告声;nb 删除前一个字符;nc 最后不加上换行符号;nf 换行但光标仍旧停留在原来的位置;nn 换行且光标移至行首;nr 光标移至行首,但不换行;nt 插入tab;nv 与f相同;n 插入字符;nnnn 插入nnn(八进制)所代表的ASCII字符;n-help 显示帮助 n-version 显示版本信息为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益#!/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 might be an$REPLY.echoecho=End of the script=Shell 脚本举例脚本举例为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益read命令命令nread variable#读取变量给读取变量给variablenread x y#可同时读取多个变量可同时读取多个变量nread#自动读给自动读给REPLYnread p“Please input:”#自动读给自动读给REPLY为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益u 状态变量$?中保存命令退出状态的值grep$USER/etc/passwdecho$?grep hello/etc/passwd;echo$?条件测试条件测试u 条件测试可以根据某个特定条件是否满足,来选择执行相应的任务。u Bash 中允许测试两种类型的条件:命令成功或失败,表达式为真或假u 任何一种测试中,都要有退出状态(返回值),退出状态为 0 表示命令成功或表达式为真,非0 则表示命令失败或表达式为假。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 内置测试命令 testl 通常用 test 命令来测试表达式的值x=5;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$?为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益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为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益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 the 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为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益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.fielse 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为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益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 by 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$*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 生成随机数的特殊变量生成随机数的特殊变量echo$RANDOM 范围是范围是:0,32767q expr:通用的表达式计算命令通用的表达式计算命令表达式中参数与操作符必须以空格分开,表达式中的运表达式中参数与操作符必须以空格分开,表达式中的运算可以是算术运算,比较运算,字符串运算和逻辑运算。算可以是算术运算,比较运算,字符串运算和逻辑运算。expr 5%3expr 5*3#乘法符号必须被转义乘法符号必须被转义随机数和随机数和 expr 命令命令为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 字符串操作字符串操作注:注:pattern,old 中可以使用中可以使用通配符通配符。例:例:ex4strm 的取值从的取值从 0 到到$#var-1字符串操作字符串操作为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益ex4str#!/bin/bashdirname=/usr/bin/local/bin;echo dirname=$dirnameecho-n$#dirname=;sleep 4;echo$#dirnameechoecho-n$dirname:4=;sleep 4;echo$dirname:4echoecho-n$dirname:8:6=;sleep 4;echo$dirname:8:6echoecho-n$dirname#*bin=;sleep 4;echo$dirname#*binechoecho-n$dirname#*bin=;sleep 4;echo$dirname#*binechoecho-n$dirname%bin=;sleep 4;echo$dirname%binechoecho-n$dirname%bin=;sleep 4;echo$dirname%binechoecho-n$dirname%bin*=;sleep 4;echo$dirname%bin*echoecho-n$dirname%bin*=;echo$dirname%bin*echoecho-n$dirname/bin/sbin=;echo$dirname/bin/sbinechoecho-n$dirname/bin/lib=;echo$dirname/bin/libechoecho-n$dirname/bin*/lib=;echo$dirname/bin*/lib为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益sh x 脚本名脚本名该选项可以使用户跟踪脚本的执行,此时 shell 对脚本中每条命令的处理过程为:先执行替换,然后显示,再执行它。shell 显示脚本中的行时,会在行首添加一个加号“+”。sh v 脚本名脚本名在执行脚本之前,按输入的原样打印脚本中的各行,打印一行执行一行。sh n 脚本名脚本名对脚本进行语法检查,但不执行脚本。如果存在语法错误,shell 会报错,如果没有错误,则不显示任何内容。脚本调试脚本调试为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益编程小结:编程小结:变量变量q 局部变量、环境变量局部变量、环境变量(export、declare-x)q 只读变量、整型变量只读变量、整型变量例:例:declare-i x;x=hello;echo$x0q 位置参量位置参量($0,$1,.,$*,$,$#,$,$?)q 变量的间接引用变量的间接引用(eval,$!str)例:例:name=hello;x=name;echo$!xhelloq 命令替换命令替换(cmd、$(cmd))q 整数运算整数运算 declare 定义的整型变量可以直接进行运算,定义的整型变量可以直接进行运算,否则需用否则需用 let 命令或命令或$.、$(.)进行整数运算。进行整数运算。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益编程小结:编程小结:输入输出输入输出q 输入:输入:readread var1 var2.readread p 提示提示q 输出:输出:printfprintf%-12.5f t%d n 123.45 8format以以%开头开头flagfield widthprecision格式符格式符-:左对齐左对齐+:输出符号输出符号0:空白处添空白处添0空格空格:前面加一空格前面加一空格字段宽度字段宽度小数点后小数点后输出位数输出位数cdefgsoxbnrtv”%REPLY REPLY输出参数用空格隔开输出参数用空格隔开为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 字符串测试字符串测试编程小结:编程小结:条件测试条件测试操作符两边必须留空格!操作符两边必须留空格!如果使用双方括号,可以使用如果使用双方括号,可以使用 通配符通配符 进行模式匹配。进行模式匹配。例:例:name=Tom;$name Tom;echo$?为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益编程小结:编程小结:条件测试条件测试q 整数测试整数测试注意这两种方法的区别!注意这两种方法的区别!为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益编程小结:编程小结:条件测试条件测试q 逻辑测试逻辑测试如果使用双方括号,可以使用如果使用双方括号,可以使用 通配符通配符 进行模式匹配。进行模式匹配。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益编程小结:编程小结:条件测试条件测试q 文件测试文件测试为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益编程小结:编程小结:控制结构控制结构q if 条件语句条件语句q case 选择语句选择语句q for 循环语句循环语句q while 循环语句循环语句q until 循环语句循环语句q break、continue、sleep 命令命令q select 循环与菜单循环与菜单q shift 命令命令l$.,$(.),$.,$(.)l .,.,(.)q 各种括号的作用各种括号的作用为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益function_name()commands函数函数q 一个函数就是一个子程序,用于完成特定的任务,当有重一个函数就是一个子程序,用于完成特定的任务,当有重复代码,或者一个任务只需要很少的修改就被重复几次执行复代码,或者一个任务只需要很少的修改就被重复几次执行时时,这时你应考虑使用函数。这时你应考虑使用函数。function function_name commands q 函数的一般格式函数的一般格式q 和其它编程语言一样,和其它编程语言一样,Bash 也可以定义函数。也可以定义函数。为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益函数举例函数举例#!/bin/bashfun1()echo This is a functionecho Now exiting fun1.fun2()echo This is fun2.echo Now exiting fun2.为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 只需输入函数名即可调用该函数。只需输入函数名即可调用该函数。函数的调用函数的调用q 函数必须在调用之前定义函数必须在调用之前定义#!/bin/bashfun2()echo This is fun2.echo Now exiting fun2.fun2#调用函数调用函数 fun2例:例:ex4fun2.sh,ex4fun3.sh为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益ex4fun2.sh#!/bin/bashJUST_A_SECOND=1fun()#A somewhat more complex function i=0 REPEATS=5 echo echo And now the fun really begins.echo sleep$JUST_A_SECOND#Hey,wait a second!while$i-lt$REPEATS do echo-FUNCTIONS-echo-ARE-echo echo let i+=1 done#Now,call the functions.funexit 0为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益ex4fun3.sh#f1#Will give an error message,since function f1 not yet defined.#declare-f f1#This doesnt help either.#f1#Still an error message.#However.f1()echo Calling function f2 from within function f1.f2f2()echo Function f2.#f1#Function f2 is not actually called until this point#although it is referenced before its definition.#This is permissible.为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益q 向函数传递参数向函数传递参数函数的调用函数的调用例:例:ex4fun4.shq 函数与命令行参数函数与命令行参数例:例:ex4fun5.shq return 与与 exit例:例:ex4fun6.sh为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益向函数传递参数向函数传递参数 例:例:ex4fun4.sh#!/bin/bash#Functions and parametersDEFAULT=default#Default param value.func2()if -z$1#Is parameter#1 zero length?then echo-Parameter#1 is zero length-else echo-Param#1 is$1-fivariable=$1:-$DEFAULT echo variable=$variable if -n$2 then echo-Parameter#2 is$2-fireturn 0为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益echoecho Nothing passedfunc2#Called with no paramsechoecho One parameter passed.func2 first#Called with one paramechoecho Two parameters passed.func2 first second#Called with two paramsechoecho second passed.func2 second#The first parameter is of zero?lengthecho exit 0#End of script 为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益函数与命令行参数函数与命令行参数 例:例:ex4fun5.sh#!/bin/bash#function and command line arguments#Call this script with a command line argument,#something like$0 arg1.func()echo$1echo First call to function:no arg passed.echo See if command-line arg is seen.Func#No!Command-line arg not seen.echo =echoecho Second call to function:command-line arg passed explicitly.func$1#Now its seen!exit 0为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益 return 与与 exit 例:例:ex4fun6.sh#!/bin/bash#purpose:Maximum of two integers.max2()#Returns larger of two numbers.if -z$2 then echo Need to pass two parameters to the function.exit 1 fi if$1=$2#$1-eq$2 then echo The two numbers are equal.exit 0 else if$1-gt$2 then return$1 else return$2 fi fi为了规范事业单位聘用关系,建立和完善适应社会主义市场经济体制的事业单位工作人员聘用制度,保障用人单位和职工的合法权益read num1 num2echo num1=$num1,num2=$num2max2$num1$num2return_val=$?echo The larger of the two numbers is:$return_val.exit 0

    注意事项

    本文(Shell脚本编程基础知识-PPT课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开