[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
系统服务
> 详细
Shell脚本(学习笔记1)
时间:
2018-03-14 16:53:43
阅读:
242
评论:
0
收藏:
0
[点我收藏+]
shell脚本学习记录
为什么学习shell脚本?
在一些复杂的linux维护工作过程中,大量的重复性的输入和交互操作不但费时费力,而且容易出现错误;然而编写shell脚本程序,可以批量处理、自动化的完成一系列的维护工作,大大减轻管理员的工作负担。
1、shell脚本的脚本结构?
一个合格的shell脚本程序应当遵循标准的shell脚本结构,而且能够输出友好的提示信息,是其更加容易读懂。对于代码较多、结构较复杂的脚本需要有必要的文字注释。如下图:#/bin/bash表示该脚本用/bin/bash程序执行,第二行为该脚本的提示信息。
执行脚本出现如下图所示的信息
2、脚本的重定向
学习重定向不得不学习与其相关的三个交互设备文件
■ 标准输入:默认的设备是键盘,文件编号为0,命令会在标准输入文件中读取在执行过程中需要的输入数据
■ 标准输出:默认的设备是显示器,文件编号为1
■ 标准错误:默认的设备是显示器,文件标号为2,是在命令执行中所产生的错误信息
重定向操作
■ 重定向输入(<):从指定的文件读取数据,而不是从键盘输入
■ 重定向输出(>):输出结果保存到指定文件;而(>>)会将结果追加到原有文件后
■ 标准错误输出(2>):将错误信息保存到指定文件;(2>>)追加
■ 混合输出(&>):将标准错误、标准输出同时保存在一个文件中
3、管道操作
管道(|)的作用是将左侧命令的结果交由右侧命令再次操作。如左侧命令是将某文件中的不是以“#”开头的行过滤出来,右侧为统计行数;加一起就是统计某文件中有多少行不是以“#”开头。
4、变量
shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应变化。通过使用变量,shell程序可以提供更加灵活的功能,适应性更强。
常见的shell变量包括自定义变量、环境变量、位置变量、预定义变量。自定义变量:变量的基本格式为“变量=变量值”,等于号两边没有空格。变量名称需要以下划线或字母开头,名称中不能包括特殊字符。查看和引用变量可以使用“echo”命令。变量赋值的特殊操作包括
1)双引号“””:双引号主要用于起界定字符的作用
2)单引号“’”:单引号括起来的字符无法引用变量,如“$”会被当做普通字符看待
3)反撇号“`”:主要用于命令替换
4)read命令:read可用来提示用户输入信息,从而实现简单的交互过程。执行时将从标准输入设备读一行内容,并以空格为分隔,将读入的各字段赋值给指定的变量。read -p可以输入提示信息。
5、设置变量的作用范围
默认情况下新定义的变量只在当前的shell环境下生效,如果这时候切换一个子shell,这个变量将无法使用,这个变量被称为局部变量。而如果想让一个变量在所有的子shell环境中有效需要将该变量设置为全局变量。export命令可以将局部变量改为全局变量,而且可以直接为变量赋值。也就是说export命令既可以将原有的局部变量改为全局变量,又可以直接定义一个全局变量。
6、数值变量的运算
常用的几种运算符
■ +:加法运算
■ -:减法运算
■ *:乘法运算
■ /:除法运算
■ %:求模运算
整数值的运算主要通过内部命令expr进行,基本格式如下
expr 变量1 运算符 变量2 [运算符 变量3]...
7、环境变量
环境变量指的是出于运行需要而由linux系统提前创建的一类变量,主要用于设置用户的工作环境,包括用户的宿主目录、命令查找路径、用户当前目录、登录终端等。环境变量由linux系统自动维护,会随着用户状态的变化而变化。使用“env”命令可以查看到当前工作环境下的环境变量;环境变量的全局配置文件为“/etc/profile”,而且每个用户都有自身的独立配置文件“~/.bash_profile”。
8、位置变量
为了在使用shell脚本时,方便通过命令行为程序提供操作参数,bash引入了位置变量的概念。当执行命令操作的时候,第一个字段表示命令字或脚本程序名,其余字符串参数按照从左到右依次复制给位置变量。
9、预定义变量
预定义变量是由bash预先定义好的变量,用户可以使用,但无法增加,无法为其赋值。预定义变量由“$”和其他符号组成。下面有几个常见的预定义变量:
■ $#:表示命令中位置参数的个数
■ $*:表示所有位置参数的内容
■ $?:表示前一条命令执行后的返回状态
■ $0:表示当前执行命令或脚本的名称
Shell脚本(学习笔记1)
原文:http://blog.51cto.com/13434336/2086794
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!