shell脚本
脚本就是可运行的代码的集合,脚本语言(计算机语言)
脚本的特点:从上到下,按行执行
python 脚本语言 格式更严谨严格执行缩进。也是从上到下按行执行
shell脚本就是在shell环境(/bin/bash)bash就是shell的解释器。Linux环境下的编程语句。
自动化运维。可重复执行的,自动化的在系统中实现增删改查的操作。
shell的解释器,默认就是bash
sh:已经淘汰
bash:sh的扩展版
csh:类C语言
tcsh:整合了c语言的shell
nologin:用户无法登录到系统的shell
shell的作用:
1.自动化运维
2.批量化的重复操作以及配合定时任务执行
3.有了脚本就可以减轻管理员的工作量
4.避免配置出错
5.提高处理批量文件的速度
shell脚本的构成:
第一行:声明解释器(默认就是bash,可以不写)
注释:以#开头,就是注释的信息,注释的部分不会被执行
可执行语句:Linux的命令都可以作为可执行语句,一行一行的往下写,一行就是一个可执行语句。
shell的执行方式:3种
第一种:不给脚本执行权限的执行方式:
sh:在当前的shell里生成一个子shell,运行结果不改变父shell的环境
source:点命令,它会改变当前shell的环境,也就是真正的执行代码。
bash:在当前的shell里生成一个子shell,运行结果不改变父shell的环境
第二种:脚本调试完毕,都是赋权执行。
当前路径 ./test.sh
非当前路径用绝对路径 /opt/test.sh
重定向操作:
重定向输出 | 操作符 | 用途 |
---|---|---|
重定向输出 | >> | 标准输出的结果保存到文件,在原有内容的尾部追加内容,不会覆盖原有的内容 |
重定向输出 | > | 只能把标准输出的结果保存到指定的文件,而且会覆盖文件原有的内容 |
重定向输出 | 2> | 只能把标准错误输出的结果,保存到指定的文件,会覆盖文件原有的内容 |
重定向输出 | 2>> | 只能把标准错误输出的结果,保存到指定的文件尾部,不会覆盖原有的内容 |
重定向输出 | &> | 混合输出,既可以保存标准输出,也可以保持标准错误输出,会覆盖文件原有的内容 |
重定向输出 | &>> | 混合输出,保存到指定的文件尾部,不会覆盖原有的内容 |
重定向输入 | < | 从指定的文件获取数据 |
变量的作用和类型,如何声明变量。
变量的作用:用来存放系统和用户需要使用的设定的参数,变量保存在内存中。调用的时候,直接到内存当中查找变量所在的内存地址。
变量的类型:
自定义变量名称由用户自己定义 值也可以自定义
变量名的规范:
1.不要使用身体的命令作为变量名
2.不要使用中文
3.不要使用特殊符号开头可以用下划线开头,不要使用数字开头
4.变量名一般会使用对应的英文名称来使用
5.变量名要保持前后一致,要有注释,提高代码的可读性
变量值:
int 整数
string 字符串 声明字符串用双引号引起来
true/false 布尔
float 浮点
bash
#自定义输入变量的值
read -p "提示信息:" a
read -p "数字b:" b
c=$(($a+$b))
echo $c
#-p 指定提示符,提示符的内容包含在""中间,""可以为空,但是必须要有
双引号就是弱引用,变量值就是变量值本身
单引号就是强引用,变量值不再是本身定义的值,保持自身的字符串形式
反撇号的作用是命令替换,把命令执行的结果传给变量,作为变量的值,先执行命令,再给变量赋值。
全局变量 对整个系统生效,所有用户都可以使用
bash
export a
a = 1
export b
b = 5
#如果要永久生效,进配置文件修改 vim /etc/profilr
全局生效,每个脚本的变量值,固定的。
持久性
共享性
全局变量适用于不需要经常更改的值
排错的方法:bash -x 脚本名 会把每一步都打印出来,这样方便定位
环境变量 环境变量是系统创建的,用来设置用户的工作环境
环境变量可以理解为特殊的全局变量,/etc/profile配置文件
echo $PATH 可执行的命令,或者可执行的程序的默认路径
位置变量(命令行参数) 在脚本外面给脚本内部传值
$1 $2 $3 ...$9
${10} 10以后要用{}把数字括起来
预定义变量 编程语言和解释器提供的,用户无法更改。只能由系统自行更新和设定
$*和$@
:表示命令或者脚本需要处理的参数。二者的区别在于处理方式的不同。
$*和$@
不加引号的表现一致,都是把参数一个一个处理
$*
加了引号,会把参数当成一个整体来处理
$#也是一个全局变量,统计传递给脚本或者函数的参数个数
$? true false 命令执行之后返回的状态码
只有0表示成功所有非0都表示失败返回上一次执行的命令的状态码
小数运算:bc是一个简易的系统自带的计算机程序,可以执行整数,也可以计算小数