bash 脚本编程基础–变量

bash 脚本编程基础–变量bash 脚本编程基础–变量 shell脚本语言是实现Linux/UNIX系统自动化运维的重要工具 bash 基础知识介绍 shell 与 shell 脚本 shell shell位于操作系统最外层,是用户与操作系统交互的工具。shell 是一种命令解释器,将用户输入的命令解释给操作系统执行,并处理操作系统的各种输出结果。 shell脚本 当我们将多条命令保存到文件中,便可方便、快速的执行多条命令。该文件便是shell脚本,shell脚本里不仅可以包含多条命令,还可以使用变量,流程控制语句(选择、循环、顺序)。 程序编程风格 程序是由指令+数据组成,程序编程风格有两种,过程式和对象式。 过程式:以指令为中心,数据服务于指令,面向过程首先分析解决问题的所有可能情况,然后将这些解决方法整理成各个步骤,然后按步骤通过调用函数等方式顺序执行。 对像式:以数据为中心,指令服务于数据,面向对象是将一切事物看做对象,甚至解决问题的思维也抽象成对象,对象并不是解决问题的具体方法,而是解决问题的模板,解决具体问题再将对象实例化。 shell脚本属于过程式编程风格,过程式编程语言有如下特点 顺序执行 选择执行 循环执行 编译执行与解释执行 计算机只能识别二进制的文件,执行二进制指令,所有人类编好的程序源码(文本文件)必须翻译成二进制数据后,计算机才能理解。翻译的方式有两种,一种是由编译器将源码翻译成目标二进制文件后由计算机统一执行,这个过程称为编译执行;另一种是每输入一行命令,解释器就解释执行一行命令,这个过程称为解释执行。解释执行操作方便,但执行效率相对较低。C,C++,JAVA都是编译执行,Bash脚本是解释执行。 另外需澄清的一点是,低级语言与高级语言之间并不存在好坏之分,所谓低级与高级是指相对于人类而言,还是相对机器而言,越接近机器的语言越低级,越接近人类的语言越高级。高级语言让人类更容易理解,但执行效率相对较低,而低级语言反之。比如汇编语言相对C语言属于低级语言,而C语言相对Python是低级语言,但他们的执行效率汇编是最高的。 变量、变量名与内存的关系 所有程序在未启动为进程之前都是存储在磁盘上的文件,CPU要执行程序,必须把程序启动为进程,即将磁盘上的程序包括数据加载到内存中,然后按程序的流程执行指令。显然CPU要能够从内存中将指令和数据读取到CPU内部才能执行它,CPU必然要知道要从内存中的哪块区域去读取下一条要执行的指令。为了达到此目的,内存将自己划分成了许多区域,每块区域都有一个地址编码,CPU就是根据该编码找到指令和数据的。内存中的某些区域的数据可能会要经常被使用到,我们可以记住这些区域的地址,使用到的时候就可以按地址去查找,这些区域便是变量,变量其实就是内存区域。这些地址都是数字,对于计算机而言很容易,但对人类来说简直就是痛苦,就像人们喜欢记住网站的域名,不喜欢记网站服务器的IP地址一样,所以我们将这些地址起一个名字,便是变量名。实际上为了安全起见,操作系统一般也不允许我们编写的代码里自己规划、使用内存空间,而是由操作系统分配给我们。 创建bash脚本 创建脚本的一般步骤为 编写脚本,一般使用vim作为编写脚本的编辑器 调试脚本 bash -n script_name #检查语法 bash -x script_name #调试 #如下为一个四则运算,判断用户输入的数字及运算符是否符合要求,符合要求再进行运算 #!/bin/bash #--------------------------------------------- # Author: zhuenbiao # File Name: arithmetic_operation.sh # Create Time: 2017-07-28 22:50:08 # Last Modified: 2017-07-28 22:50:08