linux shell脚本语言基础知识.docx

上传人:王** 文档编号:1397502 上传时间:2024-07-06 格式:DOCX 页数:18 大小:21.35KB
下载 相关 举报
linux shell脚本语言基础知识.docx_第1页
第1页 / 共18页
linux shell脚本语言基础知识.docx_第2页
第2页 / 共18页
linux shell脚本语言基础知识.docx_第3页
第3页 / 共18页
linux shell脚本语言基础知识.docx_第4页
第4页 / 共18页
linux shell脚本语言基础知识.docx_第5页
第5页 / 共18页
linux shell脚本语言基础知识.docx_第6页
第6页 / 共18页
linux shell脚本语言基础知识.docx_第7页
第7页 / 共18页
linux shell脚本语言基础知识.docx_第8页
第8页 / 共18页
linux shell脚本语言基础知识.docx_第9页
第9页 / 共18页
linux shell脚本语言基础知识.docx_第10页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《linux shell脚本语言基础知识.docx》由会员分享,可在线阅读,更多相关《linux shell脚本语言基础知识.docx(18页珍藏版)》请在优知文库上搜索。

1、以上例子,一样可以输出hellowor1d。e.若有空格符可以运用双引号或单引号将变量内容结合起来,但必需留意,双引号的特殊字符可以保有变量的特性,但是单引号内的特殊字符则仅为一般字符。#name=$1.OGNAMEishh*/rootishhMaIne=$1.OGNAMEishh,/S1.OGNMEishhf.通常大写字符为系统预设变量,自行设定的变量可以运用小写字符2)取消变量:用UnSet变量名binbash#helloworld例子a=z,helIoworld”unsetaecho$a以上例子将不会打印出任何东西。3.Sheu特殊变量$0:执行的脚本的文件名$1:脚本文件的第一个参数名

2、:传递到脚本的参数个数$*:以一个单字符串显示全部向脚本传递的参数$:脚本运行的当前进程ID号$:显示最终吩咐的退出状态,。表示没有错误,其它值表示有错误例子a.sh#!binbasha=l+ldeclare-ib=l+lecho$aecho$b执行后输出结果为1+125.条件测试在写SheIl脚本时,经常遇到的问题就是推断字符串是否相等,可能还要检查文件状态或进行数字测试,只有这些测试完成才能做卜.一步动作。test吩咐就是用于测试字符串,文件状态和数字的.test吩咐两种格式:testcondition或condition运用方括号时.,要留意在条件两边加上空格三.shell脚本编程基础学

3、问1.shell基本运算符(1)算术运算符:对两个变量做加法。b=let1+2。然后用echo$b来输出b的值。假如没有let,则会输出1+2。c,用$口表示数学运算。将一个数学运算写到$口符号的中括号中,中括号中的内容将先进行数学运算(中括号中可以包含空格例如吩咐echo$1+2,将输出结果3。(2)关系运算符-eq:数值相等-ne:数值不相等-ge:数1大于等于数2Tt:数1小于数2-gt:数1大于数2Te:数1小于等于数2输入test1-It2&echoyes则打印yes(3)布尔运算-a:(and)两状况同时成立!test-r-file则fiIe同时具有r和X权限时,才为true。-0

4、:(or)两状况任何一个成立!test-r-file,则file具有r或X权限时,就为true0!:相反状态,test!-rfile,当fiIe不具有r权限时,就为true。(4)字符串运算符=:两个字符串相等!=:两个字符串不相等-z:空串-n:非空串输入testa=*a*&echoyes则打印yes(5)测试文件状态的条件表达式:(2) if.else.fi语句结构if条件1;then执行程序1else执行程序2fi例子:#!binbashdeclare-iaechowinput1or2”readaif$a-eq1;thenechoTelseecho2fi打印为input1or211(3)

5、 if.elif.else.fi语句结构if条件1:then执行程序1elif条件2;then执行程序2else执行程序3fi例子:#!/bin/bashdeclare-ia=10declare-ib=2Oif$a=Sb;thenecho*aisequaltob”elif$a-gt$b;thenecho“aisgreaterthanb”elseecho“aislessthanb*fi输出结果为:aislessthanb(4) case.esac语句结构case$变量名称in“第一个变量内容”)程序1*“其次个变量内容”)程序2*)其它程序exit1csac例子:#!/bin/bashecho*

6、youlike”echo*1isapple”echo2isorange*echowinputyourchoice”readacase$ain1)echo“youlikeapple”*,2)echoyoulikeorange”,*)echo“you1ikenothing”exit1esac执行后结果为:youlike1 isapple2 isorangeinputyourchoice1youlikeapple3 .shell循环类型(1) for循环循环操作项目清单。重复一组吩咐列表中的每个项目。语法一:for(初始值;限制值;执行步阶)do程序done初始值:变量在循环中的起始值限制值:当变量

7、值在这个限制范围内时,就接着进行循环执行步阶:每作一次循环时,变量的变更量例子:S!binbashdeclare-iSs=0for(i=l;i=100;i+)dos=s+idoneechothesumis$s”输出结果为:thesumis5050语法二:forvarinconicon2con3./var是一个变量do程序clone第一次循环时,$var的内容为coni其次次循环时,$Var的内容为Con2第三次循环时,$Var的内容为con3例子:#!/bin/bashdeclare-aA=(l2345678910)declare-icforiin13579doc=c+A$i;cloneech

8、o“thecountis$c”输出结果为:thecountis30(2) while循环While循环,使您能够重复执行一组吩咐,直到某些条件发生。它通常用于当你须要反及操纵的变量值。语法如下:while条件do程序done当条件成立的时候进入While循环,直到条件不成立时才退出循环例子:#!/bin/bashdeclare-ia=0whiIe$a-It10doechoSaa=a+ldone这将产生以卜结果:0123456789每一次执行这个循环,变量a进行检查,看该值是否小于10。假如a的值小于10,则输出该值(3) until循环完备的状况卜,你须要执行的一组吩咐某个条件为真时,Whil

9、e循环执行。有时候,你须要执行一组吩咐,直到某个条件为真。语法如下:until吩咐do程序done这种方式及WhiIe循环恰恰相反,当吩咐成立的时候退出循环,否则接着循环例子:#!/bin/bashdeclare-ia=0until$a-gt10doecho$aa=a+ldone这将产生以卜结果:01234789(4) select循环语法如下:selectvarinword1word2do程序done例子:#!/bin/bashecho”whatisthis”selectiinteacofeewaterappleorangenonedocase$iintealcofeewater)echo“

10、drink”*,appleorange)echo“fruit”none)break*)echoERROR:Invalidselectionesacdone打印信息为:whatisthis1) tea2) cofee3) water4) apple5) orange6) none#1drink#6四.shell数组shell数组的运用$a=(1233435)$echo$a/默认获得第一个元素123$echo$(al/通过下标访问$echo$(aQ)/访问整个数组,或者*获得整个数组1233435$echo$#a/获得数组的长度4$echo$(#a3/获得字符串长度1$echo$a0:l:2/切片

11、方式获得一部分数组内容343$echo$a:2/从其次个元素起先35$echo$(ag:2)/到其次个元素12334应用实例:#!/bin/bashdeclare-aa=(l2345)for(i=0;i=4;i+)doecho$aidone这将产生以下结果:1五:Sheil函数运用函数来执行重复性的任务,是一个很好的方式来创建代码的重用。代码重用是现代面对对象编程的原则的重要组成部分。I.创建函数:声明一个函数语法:function_name()listofcommands)函数名function_name,这就是你将运用它从其他地方在你的脚本调用。函数名必需遵循括号内,后括号内的吩咐的列表。

12、例子:S!binbash# DefineyourfunctionhereHello()echo*HelloWorld*# InvokeyourfunctionHelIo当你想执行上面的脚本,它会产生以下结果:HelIoWorld2 .参数传递给函数:你可以定义一个函数,它接受参数,而调用这些函数。将这些参数代表$1,$2,依此类推。例子:S!binbash# DefineyourfunctionhereHel100echo*HelloWorldSl$2”# 1nvokeyourfunctionIlelIoZhangIisi这将产生以卜结果:HelIoWorldZhangIisi3 .从函数的返

13、回值:例子:#!/bin/bash# DefineyourfunctionhereHelloO(echovHelloWorld$1$2”return1)# 1nvokeyourfunctionHelloZhangsanIisi# Capturevaluereturndbylastcommandr=$echo”Returnvalueis$r”这将产生以下结果:HelIoWorldZhangSanIisiReturnvalueis14.嵌套函数:函数更好玩的功能之一是,他们可以调用本身以及调用其他函数。被称为递归函数调用自身的函数.例子:#!/bin/bash# CallingonefunctionfromanotheroneO(echo“Thisisthefirstfunction*two)twoOecho”Thisisthesecondfunction)# Callingfunctionone.one这将产生以下结果:ThisisthefirstfunctionThisisthesecondfunction

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机原理

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

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