linux+shell脚本语言基础知识.docx
《linux+shell脚本语言基础知识.docx》由会员分享,可在线阅读,更多相关《linux+shell脚本语言基础知识.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、linux shell脚本语言基础学问一.shell 简介Linux系统的shell作为操作系统的外壳,为用户供应运用操作系统的界面, 更精确的说,shell是用户及Linux操作系统沟通的桥梁。用户既可以输入叮 嘱执行,又可以利用Shell脚本编程,完成更加困难的操作。shell是一个叮嘱说明器,它从输入设备读取叮嘱,再将其转为计算机可以了 解的指令,然后执行它。在linux中,shell又不仅是简洁的叮嘱说明器,而 且是一个全功能的编程环境。Linux 的 Shell 种类众多,常见的有:Bourne Shell (/usr/bin/sh 或/bin/sh) , Bourne Again
2、Shell (/bin/bash) , C Shell (/usr/bin/csh) , K Shell (/usr/bin/ksh) , Shell for Root (/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换运用。每种Shell都有其特色之处,基本上,驾驭其中任何一种就足够了。通常 用Bash,也就是Bourne Again Shell进行编程。二.shell 运用1 .建立和运行shell程序shell脚本程序:依据确定的语法结构把若干linux叮嘱组织在一起,是这些 叮嘱依据我们的要求完成确定的功能。它可以进行类似程序的编写,并且不须 要编译就能执行。
3、(只需修改其权限)像编写高级语言的程序一样,编写shell程序须要一个文本编辑器,如VI和 VIM,通常运用VIM文本编辑器,支持更便利的插入模式。首先运用VIM编辑器编辑一个hello, sh文件:#! /bin/bashtthello world exampleelif 条件 2 ; then执行程序2else执行程序3fi例子:#!/bin/bashdeclare -i a=10declare -i b=20if $a = $b ;thenecho a is equal to belif $a -gt $b ;thenecho a is greater than belseecho a
4、is less than bfi输出结果为:a is less than b(4) case. . . esac 语句结构case $变量名称in“第一个变量内容”)程序1 99“其次个变量内容”)程序2其它程序exit 1esac例子:#!/bin/bashecho you like”echo 1 is apple”echo 2 is orange”echo input your choice”read acase $a inecho you like apple” ,echo you like orange” ,*)echo you like nothing”exit 1esac 执行后结
5、果为:you like1 is apple2 is orangeinput your choice1you like apple3. shell循环类型(1) for循环循环操作项目清单。重复一组叮嘱列表中的每个项目。语法一:for (初始值;限制值;执行步阶)do程序done初始值:变量在循环中的起始值限制值:当变量值在这个限制范围内时,就接着进行循环执行步阶:每作一次循环时,变量的变更量例子:#!/bin/bashdeclare -i ss=0for ( i=l; i=100; i+ )dos = s+i done echo the sum is $s输出结果为:the sum is 50
6、50语法二:for var in coni con2 con3 . . /var 是一个变量 do程序done第一次循环时,$var的内容为coni其次次循环时,$var的内容为con2第三次循环时,$var的内容为con3 例子:#!/bin/bash declare -a AA二(l 23456789 10)declare -i cfor i in 1 3 5 7 9 doc=c+A$i;doneecho the count is $c输出结果为:the count is 30(2) while 循环while循环,使您能够重复执行一组叮嘱,直到某些条件发生。它通常用于当 你须要反复操纵的
7、变量值。语法如下:while 条件do程序done当条件成立的时候进入while循环,直到条件不成立时才退出循环例子:#!/bin/bashdeclare -i a=0while $a -It 10 _doecho $aa=a+1done这将产生以下结果:0123456789每一次执行这个循环,变量a进行检查,看该值是否小于10。假如a的值小于 10,则输出该值(3) until 循环完备的状况下,你须要执行的一组叮嘱某个条件为真时,while循环执行。有 时候,你须要执行一组叮嘱,直到某个条件为真。语法如下:until叮嘱do程序done这种方式及while循环恰恰相反,当叮嘱成立的时候退出
8、循环,否则接着循环例子:#!/bin/bashdeclare -i a=0until $a -gt 10 _doecho $aa=a+ldone这将产生以下结果:01234789(4) select 循环语法如下:select var in wordl word2do程序done例子:#!/bin/bashecho what is this”select i in tea cofee water apple orange none docase $i intea|cofee|water)echo “drink” ,apple|orange)echo fruit ,none) break*) e
9、cho /zERROR: Invalid selection” ,esacdone打印信息为:what is this1) tea2) cofee3) water4) apple5) orange6) none# 1drink# 6四.shell数组shell数组的运用$ a=(123 34 3 5)$ echo $a /默认获得第一个元素123$ echo $a /访问整个数组,或者*获得整个数组 123 34 3 5$ echo $#a /获得数组的长度4$ echo $#a3 /获得字符串长度1$ echo $ a : 1:2) /切片方式获得一部分数组内容34 3$ echo $a :
10、2 /从其次个元素起先3 5$ echo $a: :2 /到其次个元素123 34应用实例:#!/bin/bashdeclare -a a=(l 2 3 4 5 )for ( i=0; i=4; i+ )doecho $aidone这将产生以下结果:12五:shell函数运用函数来执行重复性的任务,是一个很好的方式来创建代码的重用。代码重 用是现代面对对象编程的原则的重要组成部分。1 .创建函数:声明一个函数语法:function_name () list of commands 函数名function_name,这就是你将运用它从其他地方在你的脚本调用。函数 名必需遵循括号内,后括号内的叮嘱
11、的列表。例子:#!/bin/bash# Define your function here Hello () echo “Hello World”# Invoke your functionecho hello world”这样,一个最简洁的Shen程序就编写完了。第一行:#!说明hello, sh这个文件的类型的,这有点类似于Windows系统下 的用不同的文件后缀来表示不同的文件类型,但又不完全相同。Linux系统依 据#!及该字符串后面的信息确定该文件的类型。在#!之后是一个路径名,这 个路径名指定了一个说明脚本中叮嘱的程序。其次行:#hello world example就是shell
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux shell 脚本语言 基础知识
限制150内