博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux shell编程
阅读量:3956 次
发布时间:2019-05-24

本文共 2350 字,大约阅读时间需要 7 分钟。

Linux shell编程

Linux Shell编程

Linux中的Shell 作为用户与操作系统的接口,是用户使用操作系统的窗口。Shell 既是命令解释器,又是一种编程语言。作为命令解释器,Shell 是一个终端窗口,接收用户输入的命令,识别、解释、执行该命令,并向用户返回结果,Shell 的功能类似于Windows系统中的cmd.exe程序。作为编程语言,Shell提供了变量、流程控制结构、引用、函数、数组等功能,可将公共程序、系统工具、用户程序“粘合”在一起,创建 Shell脚本(又称Shell程序),实现更加复杂的应用功能。Linux系统的很多管理任务是通过Shell脚本实现的,例如,Linux系统启动过程就是通过运行/etc/rc.d目录中的脚本来执行系统配置和建立服务的。Shell脚本还用于用户工作环境的定制,如 Java开发环境、Android 开发环境、大数据应用开发环境等,都是通过Shell脚本来设置的。掌握一些基本的Shell脚本编程知识对操作、使用Linux有帮助。每个Linux系统发行版本中都包含多种Shell,一般有Bash、Bourne Shell、TC Shell、C Shell和Korn Shell等。其中,Bash是Bournc-Again Shell 的英文缩写,它吸收和继承了其他Shell 的优点,成为当前应用最广泛的Shell,是Linux Shell的事实标准。

shell脚本程序的结构

Shell脚本的语句可包括Linux命令,赋值语句,输入输出语句和流程控制结构。

在这里插入图片描述
#!:指明本程序应该用Shell程序/bin/bash来解释脚本
shell脚本的创建和执行方法
shell脚本程序是文本文件,可以用任何文本编辑器进行创建,可以移植
运行:bash xxx.sh 或者./xxx.sh

shell变量和赋值的表达式

Shell程序中一些命令产生的数据常常会被传给其他命令以做进一步处理,这可以通过变量来完成。变量允许临时性存储信息,供脚本中的其他命令使用。

用户变量可以是**任何不超过20个字母、数字或下划线的文本字符串,用户变量区分大小写,**所以变量Varl和变量 varl是不同的。Shell 变量的使用非常灵活,不必事先定义变量,在给变量赋值时会自动获得定义。Shell 变量值的类型都是字符串,可以将任何字符串赋值给变量。值通过等号直接赋给用户变量,在变量、等号和值之间不能出现空格。如果字符串值的中间有空格,应用引号括起。
Shell变量的赋值表达式可以由字符串常量、Shell 变量引用、Linux命令输出直接拼接而成,但要注意以下几点:
(1)为区分字符串常量和变量引用,Shell 要求通过美元符号($)来引用变量。
(2)若被引用的Shell 变量名后紧接着字母、数字、下划线等字符,则应将变量名用花括号()括起,否则 bash无法从中正确提取变量名。
(3)为区分赋值表达式中的 Linux 命令和字符串常量,Linux命令需要用反引号(")括起。(4)未经定义的Shell变量也可引用,只是变量值为空值。
当然赋值表达式的值也可用命令ccho直接显示输出,在 echo 命令中,串表达式的中间允许存在空格而两边不用加引号。

Shell输入输出语句

Shell脚本用ccho命令将包含变量值、字符串常量、命令输出的表达式值显示出来,如前面示例所示。Shell脚本用read命令让用户从键盘终端输入信息,存入 Shell变量。read命令的格式是:

read [s][-p prompt] variable1 variable2
上述语法表示将用户输入的多个字符串依次存入Shell 变量 variable1、variable2、…使用bash命令提取输入时,以空格作为字符串分隔符。bash命令有两个命令选项,这里用方括号括起,表示命令选项根据需要可选。
-p prompt:表示在提示用户输入前显示提示串 prompt。
-s:表示默读,用户输入信息时无任何显示,用于输入密码等敏感信息。
在这里插入图片描述

终止脚本执行和终止状态

bash启动的一条命令或一个脚本运行完毕后,我们经常需要了解命令或脚本的执行情况,成功、失败,还是压根就没有执行。如果失败,是什么原因所致。后续命令需要根据终止状态做不同处理。

因此,在Linux系统中,任何命令、脚本执行完毕后,都有终止状态,即使命令根本没有执行或不存在,也会有终止状态。

按照 Linux系统规范,命令或脚本的终止状态码是一个介于0和255的整数,一般О代表执行成功,>0代表执行失败。命令或脚本的终止状态有用户设置和系统设置两种情况。
(1)用户设置终止状态码
高级编程语言和 bash都提供了系统函数或命令来结束程序或脚本的执行,并设置终止状态码。在C语言程序中,用系统函数exit()来终止程序,设置终止状态。在bash中,用命令exit终止脚本,设置终止状态,格式为:
exit 状态码
状态码为0表示脚本执行成功,为非0表示执行失败,非0编码与失败原因之间的对应关系由编程人员自行定义。
(2)系统设置终止状态
如果C程序没有执行exit()函数调用,则其终止状态码为程序最后一个函数调用的返回值;如果Shell脚本没有执行exit命令,则其终止状态码为最后执行的命令的终止状态码。
如果用户输入的命令或脚本根本就不存在或根本没有执行,或者Linux命令、Shell脚本非正常终止,则其状态码由Linux系统根据失败原因自动设定,这时每个编码都有特定含义。表2-1是Linux命令、脚本的常见终止状态及描述。
在这里插入图片描述

纯属试一试如何写博客(资料来自Linux编程书籍)

转载地址:http://jsxzi.baihongyu.com/

你可能感兴趣的文章