系统编程之 Shell 编程
一、前言 本文将简单探索shell脚本编程,介绍shell的基本语法。 二、shell简介 shell是一个命令解释器,可以用来启动、停止、编写程序;是用户和UNIX/Linux操作系统内核程序间的一个接口。 而shell编程则是将linux命令与shell的各种流程控制和条件判断来组合成命令与变量,形成可以进行自动处理的脚本程序。 三、前期准备 创建脚本 shell脚本是一个文本文件,可用文本编辑器如vi、vim编辑保存。创建shell脚本只需按照创建文本文件的方式创建。如 vi c1.sh vim c2.sh > c3.sh shell脚本一般以.sh为后缀,但没有后缀依旧可以执行。 创建的shell脚本,一定要在开头第一行加上如下语句: #!/bin/bash 这一行将指明该脚本执行所需要的命令解释器。 执行脚本 shell脚本的执行方法有 sh <scriptname> bash <scriptname> 或者使用chmod命令修改脚本为可执行,再直接使用 ./<scriptname> 运行。 四、基本语法 变量 shell中的变量分为环境变量、用户定义变量、内部变量。 其中环境变量是操作系统的一部分,但可以利用shell脚本进行修改;用户变量即在脚本中声明的变量;而内部变量则用来指示脚本运行中出现的一些变量。 声明 只有用户变量可以声明。和其他语言一样,使用等号进行声明。但要注意的是,shell脚本是弱类型的,因此变量名前不需要加上类型名。 var=hello_world 注意shell对空格敏感,声明时等号两边不能有空格 另外可以在变量名前添加 readonly关键字设为只读 readonly constVar shell中声明数组同样直接写出数组名称 arr[0]=1 arr[1]=5 arr[10]=20 未赋值的部分默认为NULL。 注意 ubuntu 默认使用 dash 而非 bash shell。dash 并不支持数组。要使用数组可以用bash运行脚本,即运行命令 bash <scriptname> 赋值 shell变量有类似左值右值的区别。在用其他变量进行赋值时,需要对变量使用${ } 进行取值。 var1=hi var2=${var1} 引号 shell脚本是为了自动化处理命令而设计的。因此语法中有很大一部分关注于字符串和命令的相关操作。在变量上体现在,shell中所有变量默认以字符串形式存在。 并且,为了满足命令处理的需要,shell设计出了引号变量值。 shell中的引号包括单引号、双引号和倒引号。 单引号中的字符均作为普通字符出现。(可以包括空格) var1=hello_world # var2=hello world # 不合法 var3='hello world' 双引号中的字符大部分作为普通字符对待。除了$\’和双引号,这些变量依旧用于对字符串内容进行变量替换。...