码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本之编程规范与变量

时间:2019-01-22 12:21:50      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:err   term   编程规范   ext   重定向   算数   指定路径   显示器   密码   

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命令功能相同
$@ 跟$
类似,但是可以当作数组用

10、环境变量

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

shell脚本之编程规范与变量

标签:err   term   编程规范   ext   重定向   算数   指定路径   显示器   密码   

原文地址:http://blog.51cto.com/13043516/2345326

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!