shell脚本之编程规范与变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本之编程规范与变量相关的知识,希望对你有一定的参考价值。
shell脚本概念
将要执行的命令按顺序保存到一个文本文件,给该文件一个可执行权限,便可运行。
shell脚本的构成
1、脚本申明
脚本声明是指明用哪个解释器来解释
2、注释信息
注释信息是指明这个脚本的一些说明信息。就知道这个脚本时干什么用的了,这个信息不执行
3、可执行语句
进行执行的一些命令
执行shell脚本的方式
1、绝对路径
2、相对路径
3、sh 脚本路径
4、source 脚本路径
注意:其中,绝对路径与相对路径实行shell脚本时,该脚本文件必须要有可执行权限。Source脚本路径的方法,只在当前环境生效。
管道操作符 “|”
将左侧的命令输出结果,作为右侧命令的处理对象
统计passwd中的行数 cat /etc/passwd | wc –l
过滤查看passwd中wang的用户 cat /etc/passwd | grep “wang”
重定向(三种类型)
1、标准输入(/dev/stdin)
键盘输入的数据就是标准输入
2、标准输出(/dev/stdout)
显示器输出的数据就是标准输出
3、标准错误(/dev/stderr)
显示器上显示错误信息就是标准错误
4、重定向输入
先创建一个mima.tx文本,然后重定向给某个用户作为密码
pass 用户名 < mima.txt
注:密码要求必须符合系统默认要求,否则会报错密码更改终止。
5、重定向输出
1)把指定路径下的文件或者直接输入的文本重定向输入到指定文件
echo "wo zui shuai " > test.txt
注:这里不需要提前创建文件,因为当重定向输出时,未检测到该名
2)文件便会创建,创建格式自己指定即可,如:test.txt test.log test.bak
3)重定向追加,将输出文本或者内容追加到指定的文本内容之后
echo "da jia dou shuai " >> test.txt
注:这样就会不影响该文本原有的内容,还能添加上新内容,只不过是在原内容之后。
6、标准错误输出:
1)当查询不存在的文件或者目录时会提示,无法访问,没有那个文件或目录。
2)使用重定向将以上截图报错信息输出到err.txt文本中(默认没有这个文本)
3)输出报错信息需要使用2>才能输出
混合输出:
同时输出两种以上不同的输出,比如同时输出错误输出和标准输出
自定义变量(由用户自己定义、修改和使用)
1)定义x等于123,这里使用echo命令
2)继续上一步操作并显示新添加的456
注:以上截图中的引号中两个数值之间有空格,反之不显示,会失败。
3)如果想实现123456这样连续输出的话,操作如下两种(括号不同)
4)计算加减乘除使用expr命令,直接加法如下格式
5)使用变量计算加法如下格式
6)将命令设成变量查看统计系统所有用户数
定义变量和输出
1、输入格式
read 【-p “提示信息”】变量名
注:这里的懒宝宝是变量,而且是通过输入方式添加变量并先给予变量名x
2、使用两个变量相加,通过expr命令实现
8、变量的算数运算
变量的数值多用于脚本程序的过程控制,只能进行简单的整数运算,不支持小数运算,整数值的运算主要通过内部命令expr进行。格式:expr 变量1 运算符 变量2 运算符 ...
1)使用expr命令实现加减算数运算
2)使用expr命令实现乘除算数运算(包括余数)
注:从上边的截图中可以看见,乘法需要使用转义符,才能识别进行运算;而除法应该是3.7.0…因为只能取整数,所以取3;而由123除以456答案应该是小数,但是却等于0,原因是这个命令不支持小数;最后计算456除以123的余数为87
9、预定义变量
预定义变量是bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值。
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$ 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
[email protected] 跟$类似,但是可以当作数组用
10、环境变量
环境变量指的是出于运行需要而由linux系统提前创建的一类变量,主要用于设置用户的工作环境。使用env命令可以查看到当前工作环境下的环境变量。PATH变量用于设置可执行程序的默认搜索路径。环境变量的全局配置文件为/etc/profile,每个用户还有自己的独立配置文件~ /.bash_profile
以上是关于shell脚本之编程规范与变量的主要内容,如果未能解决你的问题,请参考以下文章