目录
1.shell的作用和规范
1 shell的作用
将人类使用的高级语言翻译成二进制,也可以将二进制翻译成高级语言
人类写了一个命令集合,然后用bash(shell)去翻译给硬件执行
2.shell脚本构成
1.声明解释器:!/bin/bash 代表我接下来,使用什么解释器来解释接下来的命令
2.注释信息:#
3.执行命令
3.执行脚本
1.直接调用shell解释器,加上脚本上的名字bash脚本名,不需要加上权限
2.路径/脚本 路径分为绝对,相对,但是这个需要权限
3.source(.)脚本名字 不建议使用(会修改当前参数)
如果你想让脚本全局运行(补全),将脚本放入$PATH路径下,并且脚本要有执行权限
shell 脚本的本质是程序
4.脚本的执行逻辑
1.顺序执行
2.选择执行
3.循环执行
5.脚本错误
1.命令错误
不影响接下来的命令执行,但本条命令不执行
bash -x 脚本 模拟执行,告知错误
2.语法错误
会影响脚本无法正常运行
bash -n 脚本 检查语法错误
3.逻辑错误
bash -x
加一些脚本安全选项
set -e 一旦错误就停止
set -u 变量不存在就停止
2.重定向与管道符
1.重定向
改变电脑数据的输出方向
默认电脑数据的输出方向是屏幕
你发了一条指令给电脑操作,电脑会回复结果给你,结果是一定显示在屏幕上
我们称为“标准输出”
如果电脑没有正确回复
我们称为“错误输出”
我们通过键盘鼠标,扫描仪,话筒等设备输入给电脑的指令,就是标准输入
liunx中一切皆文件
改变输出方向
1.输出到别的终端设备
2.输出到文件中
> 覆盖
>>追加
&>/dev/null 垃圾回收站
2.| 管道符
将左侧的命令输出结果,作为右侧命令的输入(处理对象)可以 叠加使用
3. 变量
保存将来会变化的数据,即使数据变化,直接调用变量即可
1.变量类型
1.自定义变量
由用户自己定义,修改和使用
2.预定义变量
$? $$ $* $@ shell程序自带的
3.环境变量
看到所有环境的变量
4.只读变量
只可以读取不可以更改
5.位置变量
通过命令行给脚本传递参数
2.命名要求
1.区分大小写
2.不能使程序中的保留字和内置变量
3.只能使用数字、字母及下划线,且不能以数字开头,注意:不支持短横线 “ - ”,和主机名相反
4.不要使用内置的变量,使用英文尽量使用词义通俗易懂,PATH
5.大驼峰 StudentFirstName
6.小驼峰 studentFirstName
7.下划线 student_name
3.特殊符号
${}定义了变量名的范围 ${}一定不会错过
" " 变量在双引号中可以识别 弱引用
' ' 变量在单引号中不被识别 强引用
` `反撇号 代表引用命令执行的结果 效果等与$()
4.整数的运算
expr只能进行整数的运算
格式: expr 变量1 运算符 变量2 [运算符 变量3]
运算符:
加法 +
减法 -
乘法 \ *
除法 /
取余 (取模)%
4.预定义变量
$?:代表上一次命令的执行结果是否正确 0代表正确 非0代表不正确
$0:代表脚本的文件名
$$:当前bash的pid
$#:代表位置参数的总个数
$*:代表所有参数,所有参数当成一个整数返回
$@:代表所有参数,每一个参数都是一个独立的个体返回
实操实验
1.用脚本显示电脑详细信息
vim system.sh
bash system.sh
运行代码
2.脚本自动分区
vim fenqu