shell脚本之编程规范与变量

shell脚本概念

将要执行的命令按顺序保存到一个文本文件,给该文件一个可执行权限,即可运行。linux

shell脚本的构成

一、脚本申明

脚本声明是指明用哪一个解释器来解释shell

二、注释信息

注释信息是指明这个脚本的一些说明信息。就知道这个脚本时干什么用的了,这个信息不执行编程

三、可执行语句

进行执行的一些命令数组

执行shell脚本的方式

一、绝对路径

二、相对路径

三、sh 脚本路径

四、source 脚本路径

注意:其中,绝对路径与相对路径实行shell脚本时,该脚本文件必需要有可执行权限。Source脚本路径的方法,只在当前环境生效。bash

管道操做符 “|”

将左侧的命令输出结果,做为右侧命令的处理对象
统计passwd中的行数 cat /etc/passwd | wc –l
过滤查看passwd中wang的用户 cat /etc/passwd | grep “wang” ide

重定向(三种类型)

一、标准输入(/dev/stdin)

键盘输入的数据就是标准输入 ui

二、标准输出(/dev/stdout)

显示器输出的数据就是标准输出3d

三、标准错误(/dev/stderr)

显示器上显示错误信息就是标准错误对象

四、重定向输入

先建立一个mima.tx文本,而后重定向给某个用户做为密码
pass 用户名 < mima.txtblog

注:密码要求必须符合系统默认要求,不然会报错密码更改终止。

五、重定向输出

1)把指定路径下的文件或者直接输入的文本重定向输入到指定文件

echo "wo zui shuai " > test.txt

注:这里不须要提早建立文件,由于当重定向输出时,未检测到该名

2)文件便会建立,建立格式本身指定便可,如:test.txt test.log test.bak

3)重定向追加,将输出文本或者内容追加到指定的文本内容以后
echo "da jia dou shuai " >> test.txt

注:这样就会不影响该文本原有的内容,还能添加上新内容,只不过是在原内容以后。

六、标准错误输出

1)当查询不存在的文件或者目录时会提示,没法访问,没有那个文件或目录。
shell脚本之编程规范与变量

2)使用重定向将以上截图报错信息输出到err.txt文本中(默认没有这个文本)
shell脚本之编程规范与变量

3)输出报错信息须要使用2>才能输出
shell脚本之编程规范与变量

七、混合输出

同时输出两种以上不一样的输出,好比同时输出错误输出和标准输出
shell脚本之编程规范与变量

自定义变量(由用户本身定义、修改和使用)

1)定义x等于123,这里使用echo命令
shell脚本之编程规范与变量

2)继续上一步操做并显示新添加的456
shell脚本之编程规范与变量
注:以上截图中的引号中两个数值之间有空格,反之不显示,会失败。

3)若是想实现123456这样连续输出的话,操做以下两种(括号不一样)
shell脚本之编程规范与变量

4)计算加减乘除使用expr命令,直接加法以下格式
shell脚本之编程规范与变量

5)使用变量计算加法以下格式
shell脚本之编程规范与变量

6)将命令设成变量查看统计系统全部用户数
shell脚本之编程规范与变量

定义变量和输出

一、输入格式

read 【-p “提示信息”】变量名
shell脚本之编程规范与变量
注:这里的懒宝宝是变量,并且是经过输入方式添加变量并先给予变量名x

二、使用两个变量相加,经过expr命令实现
shell脚本之编程规范与变量

八、变量的算数运算

变量的数值多用于脚本程序的过程控制,只能进行简单的整数运算,不支持小数运算,整数值的运算主要经过内部命令expr进行。格式:expr 变量1 运算符 变量2 运算符 ...

一、使用expr命令实现加减算数运算
shell脚本之编程规范与变量

二、使用expr命令实现乘除算数运算(包括余数)
shell脚本之编程规范与变量
注:从上边的截图中能够看见,乘法须要使用转义符\,才能识别进行运算;而除法应该是3.7.0…由于只能取整数,因此取3;而由123除以456答案应该是小数,可是却等于0,缘由是这个命令不支持小数;最后计算456除以123的余数为87

九、预约义变量

预约义变量是bash程序预先定义好的一类特殊变量,用户只能使用预约义变量,而不能建立新的预约义变量,也不能直接为预约义变量赋值。

$0 这个程式的执行名字

$n 这个程式的第n个参数值,n=1..9

$* 这个程式的全部参数,此选项参数可超过9个。

$# 这个程式的参数个数

$$ 这个程式的PID(脚本运行的当前进程ID号)

$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)

$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其余任何值代表有错误)

$- 显示shell使用的当前选项,与set命令功能相同

$@ 跟$*相似,可是能够看成数组用

十、环境变量

环境变量指的是出于运行须要而由linux系统提早建立的一类变量,主要用于设置用户的工做环境。使用env命令能够查看到当前工做环境下的环境变量。PATH变量用于设置可执行程序的默认搜索路径。环境变量的全局配置文件为/etc/profile,每一个用户还有本身的独立配置文件~ /.bash_profile