大话bashshell脚本编程

程序的主要部件:

1、变量2、条件测试3、语句:如:if、for、while、case

一、变量

变量是任何一门语言中的一个重要组成部分。定义变量就是在内存空间中开辟空间,使用该空间来存储程序运行中的中间数据的。

既然是存储数据的空间了,那么开辟的内存空间应该有二个特点:

1、在内存中开辟的空间的大小。

声明变量的类型,其实就决定了在内存中开辟的空间的大小了。

如:int var

这就决定了变量var,能够存储的数据长度为65535.在强类型的语言中,使用变量时必需要声明变量的类型,再使用。该变量只能存储指定的类型的数据。

如果该变量存储的数据大于开辟的内存空间的话,就会溢出。也就是造成数据的丢失。这是在定义变量的时候要注意的。

Bashshell是弱类型的语言,使用变量存储程序执行的中间数据不需要事先声明就可以直接使用了。默认变量是字符类型的。

如:

引用命令的执行结果,给变量:freeMem赋值。

[root@stu13~]#freeMem=$(free-m|awk’/^Mem/{print($4+$6+$7)/$2}’)

查看变量freeMem的值

[root@stu13~]#echo$freeMem0.883534

输出变量freeMem加1的结果。

[root@stu13~]#echo”${freeMem}+1″0.883534+1

说明:

从结果中,可以看出只是做字符的连接。所以,Bashshell的变量默认是字符类型的。

2、在内存中开辟的空间的存活时长。

这就是所谓:“程序中变星的作用范围”。

全局变量(环境变量)使用【export】导出,任何shell都要以访问。本地变量只对当前shell进程有效;对其它shell进程无效,包括当前shell进程的子进程。局部变量对shell脚本中某代码片断有效;使用【local】说明该变量变局部变量。通常用于本地变量。

我们知道了,变量的作用范围之后,在程序的啥位置可以引用到该变量的值。当我们要使用到变量存储程序的执行的中间数据的时候:

如果需要在程序的不同位置(主程序中、函数中)引用变量的话,就要把变量定义为本地变量。如果,把该变量定义成局部变量的话,存储的数据就会丢失了。

如果我们在函数中使用到变量,且只在该函数体中引用该变量的话,就不必要把变量定义成本地变量了,应该把它变量设置为:局部变量。只在函数体中有效。当主程序调用该函数完成之后,该变量所占用的内存空间就被释放了。不竞内存是有限的。这也是程序优劣的一个体现。

testVar(){localpidbase=user=nice=bg=pid_file=}

既然,bashshell的变量默认是字符类型的。那么怎么对变量做运行算术运算呢?

做算术运算的条件:必需是数值型。

所以,在做算术运算之前要做变量类型的转换。

例:

[root@stu13~]#a=2[root@stu13~]#b=3

做字符的连接

[root@stu13~]#echo”$a$b”23

使用$[],告诉bashshell要对变量:$a、$b 做算术运算。bashshell在做算术运算之前就对这两个变量的类型做隐式转换,,之后才做算术运算的。

[root@stu13~]#echo”$[$a+$b]”5

说明:

对字符类型的变量:$a、$b做算术运算,要先进做数据类型转换再做算术运算的。如果,我们明确知道这两个变量记录的数据是用来做算术运算的话,在使用变量之前最好声明变量的类型,这避免了做数据类型转换的过程。我们的程序执行是不是快一点呀?

还有一个好处,是节约内存空间:

把123当做数值类型存储的话:一个字节8位就可以存储数值型123把123当做字符存储存储的话:要三个字节才可以存储字符型123

所以,我们如果明确知道变量的存储类型的话,最好声明该变量是用来存储什么类型的数据的。

如:

[root@stu13~]#declare-isum=0[root@stu13~]#letsum+=4[root@stu13~]#declare-psumdeclare-isum=”4″[root@stu13~]#echo$sum4

三、bashshell的条件测试。

程序中有了判断语句(if)、循环语句(for,until,while)、选择语句(case),这些语句都可以互相嵌套使用,这就使得程序的逻辑功能非强强大,能模拟很多人的行为,这就是自动化的实现。

但是它们的最核心是就是探测某一事物的“真/假”执行不同的行为(也就是这些做条件测试)。那么,在 bashshell中:0 表示:真。非0,表示假。这与其它编程语言是相背的。

用到if、for、until、while,的前提是要先了解:如何做条件测试。:

1、字符串的比较、匹配、判断:

问:一只小狗在沙漠中旅行,结果死了,问他是怎么死的?

大话bashshell脚本编程

相关文章:

你感兴趣的文章:

标签云: