博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell脚本之编程规范与变量
阅读量:6326 次
发布时间:2019-06-22

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

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)当查询不存在的文件或者目录时会提示,无法访问,没有那个文件或目录。

shell脚本之编程规范与变量

2)使用重定向将以上截图报错信息输出到err.txt文本中(默认没有这个文本)

shell脚本之编程规范与变量

3)输出报错信息需要使用2>才能输出

shell脚本之编程规范与变量

7、混合输出

同时输出两种以上不同的输出,比如同时输出错误输出和标准输出

shell脚本之编程规范与变量

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

1)定义x等于123,这里使用echo命令

shell脚本之编程规范与变量

2)继续上一步操作并显示新添加的456

shell脚本之编程规范与变量
注:以上截图中的引号中两个数值之间有空格,反之不显示,会失败。

3)如果想实现123456这样连续输出的话,操作如下两种(括号不同)

shell脚本之编程规范与变量

4)计算加减乘除使用expr命令,直接加法如下格式

shell脚本之编程规范与变量

5)使用变量计算加法如下格式

shell脚本之编程规范与变量

6)将命令设成变量查看统计系统所有用户数

shell脚本之编程规范与变量

定义变量和输出

1、输入格式

read 【-p “提示信息”】变量名

shell脚本之编程规范与变量
注:这里的懒宝宝是变量,而且是通过输入方式添加变量并先给予变量名x

2、使用两个变量相加,通过expr命令实现

shell脚本之编程规范与变量

8、变量的算数运算

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

1、使用expr命令实现加减算数运算

shell脚本之编程规范与变量

2、使用expr命令实现乘除算数运算(包括余数)

shell脚本之编程规范与变量
注:从上边的截图中可以看见,乘法需要使用转义符\,才能识别进行运算;而除法应该是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

转载于:https://blog.51cto.com/13043516/2345326

你可能感兴趣的文章
SaltStack配置salt-api
查看>>
各种情况下block的类型
查看>>
ThinkPHP 3.2.x 集成极光推送指北
查看>>
MYSQL 表情评论存储(emoji)
查看>>
js作用域链
查看>>
java中如何选择Collection Class--java线程(第3版)
查看>>
API: numpy.argsort
查看>>
Myeclipse搭建android开发环境(本人Myeclipse9.0亲测可用)
查看>>
忘记了mysql数据库root用户的密码
查看>>
matlab-自控原理 taylor 泰勒展开 一、二元函数
查看>>
XPEnology
查看>>
【推荐】Sql Server 不常见应用之一:获取表的基本信息、字段列表、存储过程参数列表...
查看>>
前端一些优秀的团队个人以及总结
查看>>
【整理】解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止【后台运行程序】...
查看>>
STL中map键值为struct时报错处理
查看>>
ACM图灵奖
查看>>
Office2007文件在IE8下,下载为zip文件
查看>>
如何更改ovirt-engine的管理员admin的密码
查看>>
python多进程并发
查看>>
iOS开发之性能优化
查看>>