shell脚本和编程2 循环结构: while循环:while condition; do 程序段;done until循环:until condition; do程序段;done for循环:for var in[words...]; do程序段;done shell自上而下执行,函数必须在使用前定义;函数获取变量和shell script类似,1、()、‘’获取结果;如果没有return,函数状态是上一条命令的执行状态,存储在?用于判读当前shell前一个命令是否正常退出(非0为不正常退出)。 shell脚本一般以.sh结尾,也可以没有,第一行需要指定用什么命令解释器来运行: #!/bin/bash 或#!/usr/bin/env bash 启动方式: #文件名运行 .filename.sh #解释器运行 bash ./filename.sh #source 运行 source ./filename.sh 在bash脚本中是以回车或者分号作为一段命令结束的标志。大括号展开一般由三部分构成,前缀、一对大括号。shell展开:波浪号展开、参数展开、命令替换、数学计算。 调试:1、普通logo,使用echo、printf,2、使用set命令,3、vscode debug插件;VSCode配置:1、shellman:代码提示和自动补全,2、shellcheck:代码语法校验,3、shell-format:代码格式化,4、Bash Debug:支持单步调试。 前端集成:1、node中通过exec、spawn调用shell命令,2、shell脚本中调用node命令,3、借助zx等库进行JavaScript、shell script的融合。exec启动一个子shell进程执行传入的命令,并且将执行结果保存在缓冲区中,并且缓冲区是有大小限制的,执行完毕后通过回调函数返回。spawn默认不使用shell,而是直接启动子进程执行命令,且会直接返回一个流对象,支持写入或者读取流数据,这个在大数据量交互的场景比较合适。