01shell概念基础
终端:获取用户输入展示运算结果的硬件设备。 shell:Command interpreter处理来自终端模拟器的输入,解释执行之后输出结果给终端。 tty 终端模拟器:Mac terminal iterm2等关联虚拟tty的输入输出软件。 Bash:shell一种的具体实现。
02语法和命令 变量:变量类型分为自定义变量,环境变量,系统环境变量
自定义变量作用域为当前shell 声明方式为= 规范:字符串整型,浮点型,日期型
环境变量作用域为当前shell及其子shell 声明方式export declare-x
系统环境变量作用域为所有shell 声明方式启动加载
declare [+/-] 选项变量
-:给变量设定类型属性
+:取消变量的类型属性
-a:将变量声明为数组类型
-i:将变量声明为整数型
-x:将变量声明为环境变量
-r:将变量声明为只读变量
_p:显示指定变量被声明的类型
系统环境变量
$0:当前shell名称/脚本名称
$#:传入脚本的参数数量
$*:传入脚本的所有参数
$?:上条命令执行的状态码
运算符和引用
算术运算符:+ - * / | &
逻辑运算符:|| && !
比较运算符:== != < >
引号:单引号 双引号 反引号
圆括号
命令连接
后台运行 &
管道:管道与管道符 | ,作用是将前一个命令的结果传递给后面的命令 语法:cmd1|cmd2
重定向 输出重定向符号
:覆盖写入文件
:追加写入文件
2>:错误输出写入文件
&>:正确和错误输出统一写入到文件中
输入重定向符号 < <<
02_判断命令
shell中提供了test [[[三种判断符号
●字符串测试
●文件测试
语法:
test condition [ condition ] [[ condition ]]
分支语句
if condition;then 程序段 elif condition;then 程序段 esle 程序段 fi
循环 while循环 until循环 for循环
函数 funcName(){echo"abc"}
模块化 原理:是在当前shell内执行行函数文件,方式: source{函数库的路径}
常用命令:grep sort wc head tail
03执行过程和原理
1.shell脚本一般以.sh结尾,也可以没有,这是一个约定;第一行需要指定用什么命令解释器来执行 2.启动方式
04调试和前端集成 1.普通log 使用echo printf 2.使用set命令 3.vscode debug插件
前端集成 1.node中通过exec SPAWN调用shell命令 2.shell脚本中调用node命令 3.借助zx等库进行JavaScript shell script 融合
课后总结:shell是一个高级语言,通过它可以简洁的表达复杂的操作。可在短时间内完成一个功能强大又好用的脚本