首页 电脑 电脑学堂 查看内容

shell脚本编程

2013-10-16 11:51 660 0

摘要: Linux中的shell脚本编程:shell脚本是什么:shell脚本是一个可反复执行的能够实现一些功能的文件,一般以.sh结尾。Shell脚本有什么用:在工作中你可能需要经常执行一组命令以完成一些任...
关键词: 变量 脚本 shell nbsp 命令 环境 参数 当前 如果 VAR

Linux中的shell脚本编程:shell脚本是什么:shell脚本是一个可反复执行的能够实现一些功能的文件,一般以.sh结尾。Shell脚本有什么用:在工作中你可能需要经常执行一组命令以完成一些任务,如果每天都要这么做就会变得枯燥无趣,或者这组命令需要在多台服务器上执行,而其中又需要大量的修改某些配置文件,如果每次都手动的去执行这些命令就会极大的降低工作效率而且很容易因为粗心某个单词写错造成排错上的困难,这时候就可以写个shell脚本来完成以上工作,需要的时候执行一次就可以了,还可以把它写到任务计划里边,让它周期性的自动执行,即提高了工作效率也降低了出错几率。Shell脚本的结构组成和执行顺序:在shell脚本中第一行是有特殊意义的,用来标示执行脚本的shell程序,例如:#!/bin/bash : 这表示该脚本使用/bin/bash来执行,脚本可以由哪些shell程序来执行取决于你当前的系统支持哪些shell,可以用 # cat /etc/shells来查看当前系统支持的shell。脚本中的第二行一般为#号开头的注释行,用来描述脚本的作用和功能,当然如果你只是用来测试练习使用的也可以不写,但最好能养成一个好的习惯,在shell脚本中所有以#号开头的行都为注释行,用来描述脚本的作用和提示性信息,在脚本执行过程中是不会被执行的,但脚本开头的第一行的第一个#号除外,它是用来标示脚本的执行shell程序的。脚本中以第三行开始就是脚本的主体组成也就是要执行一个个命令了,如果你第二行的注释信息有好多行,也可能就不是从第三行开始了,总之如果是不想让被执行的内容该行开头都要加上#号。脚本的执行顺序,正常情况下读取脚本的第一行决定调用哪个shell程序来执行该脚本,然后开始自上而下、自左往右逐条执行每一行的每一个命令,如果一行里要执行多个命令需使用;号隔开,遇到#号则跳过该行,但是也有例外情况,脚本中的某些关键字可以改变脚本的执行顺序,甚至在中断该脚本的执行,例如,exit break while 等,下边会做详细介绍。 第一章、Shell脚本中的变量 有些时候在脚本的编写过程中你需要反复用到同一个路径或者同一段字符串,这时你就可以定义一个变量,把你反复用到的这段内容赋值给该变量,当用到的时候之需要调用该变量就可以了。变量的赋值不仅仅是固定的一段字符串,可以是一条命令的执行结果,可以是脚本互交输入的内容,也可以是与其他变量算术运算后的结果,按变量的类型可分为以下几类:环境变量:对当前shell和子shell生效,像脚本的执行就是在子shell中进行,所以在当前shell中定义的环境变量同样可以在shell脚本中使用,可使用#env 命令查看当前shell中的所有环境变量,系统预定义的环境变量可直接调用。环境变量的设置方法有三种:1># declare -x VAR_NAME=value2># export VAR_NAE=value3># set VAR_NAME=valueVAR_NAME为变量名称该名称为自定义,但要遵循以下三个原则:1.只能包含字母、数字和下划线,并且不能以数字开头2.不能与关键字冲突 (例如if for case 等,下边会详细介绍)3.最好能做到见名知意也就是起个有意义的名字value为变量的具体内容# echo $VAR_NAME 来显示变量的内容局部变量:也叫本地变量与环境变量想对应,只对当前shell生效,shell脚本中定义的变量大部分都为这类变量,当脚本执行结束时定义的变量也随之消失。可使用# set 命令查看当前shell中的所有局部变量。局部变量的设置方法一般为:VAR_NAME=value,同样名称的定义也要遵循上边提到的定义环境变量的三个原则。特殊变量:shell对一些参数做特殊处理,这写参数只能被引用而不能被赋值,例如:$? : 引用上条命令的执行结果的返回值0 : 上条命令成功执行1-255 :均为执行失败$$ : 脚本运行的当前进程ID号$# : 向脚本传递的参数个数位置变量 :和特殊变量一样他们只能被引用不能被赋值,如果要向脚本传递参数就可以用位置变量来引用传递的参数,此数目可以任意多,但只有前9个可以被访问,例如:$0 : 表示脚本名称$1 : 表示向脚本传递的第一个参数$2 : 表示向脚本传递的第二个参数$3 …..$9 : 表示向脚本传递的第九个参数变量引用:上面讲述了四种类型的变量,如何引用自己定义的变量呢其实很简单,环境变量和局部变量只需要在变量名前加$符号就可以了,例如:# export COS=ubuntu //定义环境变量COS赋值为ubuntu# echo $COS //使用echo 命令回显变量COSubuntu //变量的值变量自身也可以引用其他变量,例如:# VAR=”$COS is good.” //定义局部变量VAR赋值为$COS is good.# echo $VAR //使用echo命令回显变量VARubuntu is good. //变量VAR的值上边例子可以看出变量VAR赋值时引用了变量COS的值,但要注意如果在给变量赋值时引用了其他变量需要用”“双引号把整个内容括起来,不然是不会做变量替换,如下:# VAR='$COS is good.'#
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部