05- Shell脚本学习--函数】的更多相关文章

函数 函数定义 [ function ] funname [()] { action; [return int;] } 定义时可以是function fun(),也可以直接fun(),不带参数 返回值不显式返回时,以最后一条命令运行结果作为返回值.return后为数值,范围0-255 带返回值的示例 #!/bin/bash funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNu…
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. 函数定义 Shell 函数的定义格式如下: function function_name () { list of commands [ return value ] } 其中function关键字是可选的. #!/bin/bash hello(){ echo 'hello'; } hello 运行结果: hello 调用函数只需要给…
shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题去问别人,不同的人的回答可能各不相同.我见过/usr/bin/env bash,也见过/bin/bash,还有/usr/bin/bash,还有/bin/sh,还有/usr/bin/env sh.这算是编程界的“’茴’字四种写法”了.在多数情况下,以上五种写法都是等价的.但是,写过程序的人都知道:“少…
Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source Code)转换成目标代码(object code),便能直接通过计算机来执行. 编译型语言的好处是高效,缺点是:他们多半运作于底层,所处理的是字节.整数.浮点数或是其他机器层级的对象.而脚本语言Shell通常是解析型(interpreted)的.这类程序的执行,是由解析器(interpreter)读入…
shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说有多少种Shell,其实说的是Shell脚本解释器. Hello World 打开文本编辑器,新建一个文件test.sh,扩展名为.sh(sh代表shell). 输入一些代码: #!/bin/bash echo "Hello World !" 在命令行运行:…
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超过64个字符. 2.在某些系统上,命令行部分包含了命令的完整路径名称.不过有些系统却不是这样:命令行的部分会原封不动地传递给被引用的程序. 3.别在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用的程序. 4.你需要知道解释其的完整路径名称.这可以用来规避可移植问题,因为不同的厂商可能将同样的东西放…
Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix上,还有个wingger大神整理的Shell基础二十篇.这份文档涉及的内容比较多,我没记错的话应该有很多命令的用法,而且配备实际使用的例子,对初学者帮助甚大. <Shell脚本专家指南>(文中提到的书和资料下面都有下载的链接)也是一本不可多得的好书.书中都是作者实际工作中的经验总结,你可以从中学到…
正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50vZlGSGNt0jYq7BN4mac4RrVC96KKq SED(Linux指令)_百度百科 http://baike.baidu.com/link?url=DQklcY8r4u33kGGfZt5Q-Mm6JHgKOGJQqQvpvfB3mYk5R_kiZ4X6jcdBs10ni1cZFm7-Oh…
继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ` 注意点: 1. 引号不是普通单引号,是右斜的引号,在esc键下方.表达式用这种右斜的引号括起来,必须成对出现 2. 运算符两边要留空格.4+4不行,必须写成4 + 4 运算符不用多说,和其余编程语言类似.加减乘除取余:+-*/% 赋值用=,比较相等用==,比较不等用!= 特别注意的是*要在前面加…
bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array1=( ) 使用索引-值定义 [root@new ~]# array2[]="test1" [root@new ~]# array2[]="test2" [root@new ~]# array2[]="test3" 使用key-value键值对 [r…
Shell的函数在使用之前必须先定义,定义格式: [ function ] funname [()] { action; [return int;] } 可以带function fun()定义,也可以直接fun() 定义,不带任何参数. 参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. return后跟数值n(0-255) 示例 fsum 2 5 fsum(){ echo $1,$2 return $1+$2 } sum=$(fsum 2 5) echo…
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数…
其实,vii 就是写的一个脚本,跟 vi 没半毛钱关系,只不过借用一下这个名字而已.那这个脚本长什么样呢?look: 下面来详细的解析上面的代码,来看第1行: #!/bin/bash 这是Shell脚本的格式,没啥好讲的. 再来看第3-6行: if [ $# -eq 0 ] then vi fi 这是是判断执行 vii 的时候带不带参数,假如不带参数,那么就直接启动 vi 再来看第8-16行: if [ $# -eq 1 ] then suffix=`echo $1 | sed "s/\(.*\…
继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不要写else if: if condition then command1 command2 ... commandN fi if else: if condition then command1 command2 ... conditionN else command fi if else-if…
近来主要捣鼓ubuntu,大多数项目中都用到了sh脚本作为启动脚本等,以前只是大概明白如何使用,今天需要自己修改并运行脚本就碰到了很多问题,所以决定静下心来学习一下shell脚本,学习了几个小时,现将一些要点总结如下,以供以后翻看或者供入门人员参考. 第一行 这里指的是脚本第一行,一般脚本第一行都是 #!/usr/bin/env bash 这句话的意思是告诉操作系统用哪个命令来解析脚本,一般不用改变 脚本(函数)参数 运行xx.sh 1 2 3后$*为"1 2 3"(一起被引号包住)$…
前言:自从大学毕业参加工作以来,接触的开发工作都是在服务端完成,于是接触了比较多的Linux当做开发机使用,或多或少有一些重复性的工作,于是开始琢磨学习一些shell脚本的知识,以便处理这些繁琐的事情. shell种类有很多bash.sh.csh.ksh等,不同的环境下使用的也不同,不过bash应该是使用最广泛了~也是Linux发行版默认的: 主要就是掌握常见的命令以及语法格式吧~然后就可以上手干活了: 命令如下: echo:输出命令到终端 -e:表示对转义字符进行替换 -E:禁止转义 read…
shell脚本的学习: 1.Shell的作用是解释运行用户的命令,用户输入一条命令,Shell就解释运行一条,这样的方式称为交互式(Interactive),Shell还有 一种运行命令的方式称为批处理(Batch),用户事先写一 个Shell脚本(Script),当中有非常多条命令,让Shell一次把这些命令运行完,而 不必一条一条地敲命令. 2.shell变量包含环境变量和本地变量,环境变量能够从父进程传给子进程,printenv可打印出来:本地变量仅仅存在于当前 Shell进程,用set命…
跟着RUNOOB网站的教程学习的笔记 shell变量 shell变量的命名 定义变量时,变量名不加美元符号($,PHP语言中需要),如: name="runoob" 注意,变量名与等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的 命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字母不能以数字开头. 中间不能有空格,可以使用下划线代替你想要的空格(例如your_name). 不能加标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字…
Shell简介 概述 Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令,并把它送入内核去执行.内核是Linux系统的心脏,从开机自检就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存.Shell是一种应用程序,当用户登录Linux系统时,Shell就会被调入内存去执行.Shell独立于内核,它是连接内核和应用程序的桥梁,并由输入设备读取命令,再将其转为计算机可以理解的机械码,Linux内核才能…
 转载:http://blog.csdn.net/leexide/article/details/17485451 目录(?)[-] 一概述 二expect的安装 一Tcl 安装 二expect 安装 需Tcl的库 三Expect工作原理 实现功能 2实现自动执行 决定如何响应 使用超时 一个更复杂的例子 四使用expect脚本的小窍门 使用-c选项从命令行执行expect脚本 使用-i选项交互地执行expect脚本 当执行expect脚本的时候输出调试信息 使用-D选项启动expect调试器…
Shell学习笔记 简介: Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell. Shell教程入门 1.shell脚本 shell脚本shell script,是一种为shell而编写的脚本程序.然而通常所…
Shell文件包含 shell也可以包含外部脚本,语法格式如下: . filename 或 source filename 例如创建两个shell脚本. 脚本1:test1.sh url = "www.baidu.com" 脚本2:test2.sh . ./test1.sh echo "$url" 执行test2.sh,即可看到结果. Shell输入输出重定向 命令 说明 command>file 将输出重定向到file command<file 将输入…
Shell脚本最常用于系统管理工作,或者用于结合现有的程序以完成小型.特定的工作. Shell的特点有: 1. 简单性 2. 可移植性 3. 开发容易 [什么是shell] 简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具.实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了.打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些.回到计算机上来,用户直接面对的不是计算机硬件而是shell,用户把指…
1.Shell脚本是解释型的语言. 2.Shell脚本建立的基本步骤: 3.Shell脚本文件的第一行一般可以是:"#! 路径名 -(选项)", 为了要使Shell脚本有移植性,请满足下列要求: 1)Length(第一行)<64 2)路径名要完整 3)选项不要有空格 4.Shell脚本的命令类型:内建命令(shell本身),Shell函数(shell语言写成)以及外部命令(shell副本,即新进程).使用"&" :后台执行(类似多线程执行) ,&quo…
在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性.可维护性和便携性比效率更重要的任务.  下面,让我们一起来看看shell是如何工作的: 1. 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并…
前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运行结果 29949 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数. $@ 传递给脚本或函数的所有参数.被双引号(" &q…
因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化.因此,Shell脚本只要“用心写”一次,即可应用到很多系统上.因此,之所以要使用Shell脚本是基于: 简单性:Shell是一个高级语言:通过它,你可以简洁地表达复杂的操作. 可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行. 开发容易:可以在短时间内完成一个功能强大又妤用的脚本. 但是,考虑到Shell脚本的命令限制和效率问题,下列情况一般不使用Shell: 资源密集型的任务,尤其在…
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,shell是最重要的实用…
变量 定义变量 可以使用export和readonly来设置变量,export用于修改或打印环境变量,readonly则使得变量不得修改.语法: export name[=word] ... readonly name[=word] ... 可以export/readonly时就给变量赋值,或给变量赋值后再export/readonly变量,如: export website=oseye.net age=22 export age 比较常用的exoprt,它是把变量放进环境中,新的进程可以从其父…
为什么要使用shell脚本? shell脚本能够轻易处理文件与目录之类的对象,而且是各UNIX系统之间经过POSIX标准化的通用的功能,因此Shell脚本只要“用心写”一次,即可应用到很多系统上,因此之所以要使用Shell脚本是基于: 简单性:Shell是一个高级语言,通过它,你可以简洁地表达发杂的操作: 可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可以在不同的系统上执行: 开发容易:可以在短时间内完成一个功能强大又好用的脚本: 第一个shell脚本 cat > testshel…