shell脚本和编程 | 青训营笔记

88 阅读2分钟

1.shell的概念,终端:获取用户输入,展示运算结果的硬件设备;tty是UNIX和Linux中的抽象设备。有时它指的是物理输入设备,如串行端口,有时它指的是允许用户与系统交互的虚拟TTY。终端模拟器:给开发者用的,开发者开发应用之后,一般都会在模拟器上测试。模拟器其实也是虚拟机的一种,他和我们现在所说的虚拟机的差别在于,模拟器使用固化的操作系统,不能随意更改操作系统,且结构简单,不能随意添加虚拟硬件设备。而虚拟机有如一台终端机,你可以随意安装操作系统,随意更改硬件配置,模仿程度高。shell:终端是敲命令的工具 shell就是管理系统的命令。用终端模拟器就是连接远程计算设备并返回一个shell。

2.shell脚本含三个变量:自定义变量,环境变量,系统环境变量 自定义变量需要注意,符号左右不能有空格,可以将命令复制给变量,默认是字符串类型所以不可以随便进行运算哦,系统环境变量0表示shell名称/脚本名称,0表示shell名称/脚本名称,#表示传入脚本的参数数量,$*表示传入的所有参数。

3.管道符:就是将前一个命令的结果传递给后面的命令。

4.判断命令,shell提供test,[,[[,用于文件测试,字符串测试等等;

5.分支语句:if then 程序段 elif 程序段 else 程序段 fi

6.循环有while,until,for循环

7.函数,shell是自上而下,也就是从上面开始执行到下面,函数内retrn是代表函数执行状态,不想其他语言是返回结果,如果没有return那么上一条命令就是shell的状态。

8.shell展开有大括号展开,波浪号展开,参数展开,命令展开,命令替换,数字计算,文件名展开,大括号展开:一般由三部分构成,前缀、一对大括号、后缀.大括号内可以是逗号分割的字符串序列,也可以是序列表达式 {x..y[..incr]},参数展开(Shell Parameter Expansion)0间接参数扩展0 间接参数扩展{!parameter},其中引用的参数并不是parameter而是parameter的实际的值 2.参数长度 {#parameter)} 3.空参数处理 {parameter:-word}# 为空替换parameter:=word}# 为空替换,(parameter: ?word} # 为空报错S(parameter:+word}#不为空替换4.参数切片 parameter:offset{parameter:offset} {parameter: offset: length} 5.参数部分删除 ptPaidiTietel/word}F 最小限度从后面截取word{parameter%%word}#最大限度从后面截取word{parameter#word}# 最小限度从前面截取word${parameter##word}# 最大限度从前面截取word

9调试1使用普通log,使用echo、printf 2.使用set命令 3.vscode debug插件

10.VSCode 配置

  1. shellman:代码提示和自动补全
  2. shellcheck:代码语法校验 3.shell-format:代码格式化 1.安装最新版本bash brew install hach 2.查看安装路径 Wicn -a bash 3.将新版本bash 路径加入PATH PATH="/usr/local/bin/bash:$PATH"
  3. Bash Debug:支持单步调试 一安装vscode 插件 一 编写launch.json文件 一 升级bash到4.×以上版本

11.前端集成 1.node中通过exec、spawn调用shell命令 2.shel 脚本中调用node命令 3.借助zx等库进行javascript、shell script 的融合 -借助shell完成系统操作,文件io、内存、磁盘系统状态查 一借助nodejs 完成应用层能力,网络io、计算等#青训营笔记创作活动