Shell 脚本和编程
01Shell 基本概念
shell command interpreter,处理来自终端模拟器的输入,解释执行之后输出结果给重点。
解释器:bash内置命令、GNU核心工具集、第三方库
编程语言:变量、运算符和引用、重定向、判断命令(test、[、[[)
02命令和语法
自定义变量
(只能在父进程用到)
环境变量
系统环境变量
配置文件加载
通过系统用户登录默认运行的shell
非登录交互式运行shell
执行脚本运行非交互式shell
如果取得 bash 需要完的登录流程,我们称之为 login shell,比如 ssh 远程登录一台主机不需要登录的bash 我们称为 non-login bash,比如在原来的 bash 中执行 bash开启子进程.执行一些外部命令如果修改了配置文件,不会立即生效,需要我们重启终端或者执行 source 命令 循环、函数、命令(grep筛选;tail)
xgarg标准输入转化为参数列表
03执行过程和原理
执行 1、shell脚本以.sh结尾 #! /bin/bash 2、启动方式 ./filename.sh bash ./filename.sh source ./filename.sh
1、字符解析 识别换行符、分号做行的分割 识别命令连接符做命令的分割 识别空格、tab符,做命令和参数的分割 2、shell展开 a大括号展开{...} a{b,c}e=>abe ace {1..5}=>1 2 3 4 5 b波浪号展开 c参数展开
04调试shell版本和前端集成
1、普通log echo printf
2、使用set命令
3、vscode debug插件 shellman shell check shell-format bash debug
前端集成
1、node中通过exec调用shell
2、借助zx等库进行js、shell script的融合
借助shell完成系统操作,文件io、内存、磁盘系统
3、重定向