shell是命令解释器,它的组成部分与编程语言的组成如下:
一、变量 (1)自定义变量 法一:let var 法二:declare +-var(变量名字) "-" 定义类型属性; "+" 取消类型属性; -a 数组类型; -i 整数类型; -x 环境变量; -r 只读; -p 显示变量被声明的类型
(2)系统变量
"$"(+其他东西)0 shell名称;
"#" 传入脚本的参数数量;
“*”传入脚本的所有参数;
? 上调命令执行的状态码;
PS1 命令提示符;
HOME 用户主文件夹;
PATH 全局命令的搜索路径;
二、配置文件 (1)修改: vim ~/.文件名 ——修改文件; source ~/. 文件名 ——完了之后执行。
(2)加载:分为login & non-login。 login:交互式(sh) non-login:非交互式(sh s.sh)
执行流程:
三、管道 语法:cmd1 | cmd2 (右侧要能接受标准输入)
(eg:查找.sh文件的命令)
ps:xargs命令的作用,是将标准输入转为命令行参数。
四、重定向 1.符号: 输出: ">":覆盖写入文件; ">>":追加写入文件; "2>":错误输出写入文件; &>:正确错误输出一起写入文件。 输入:< <<
eg1:查找.sh文件写入123.txt中
eg2:
循环执行读取每行信息,对每行信息做cut操作,cut完之后取第一列写入auth.txt文件中,然后使用输出重定向到刚才的list.txt 文件
eg3:接受数据,当遇到EOF符号时停止输入,并把输入数据的总数量传给wc
五、判断命令
1.shell中提供了test、【、【【三种判断符号,可用于整数、字符串、文件测试。 eg:
2.编程逻辑语句: 分支语句:if ,case $var in; 循环语句:while,until(条件成立跳出循环),for (还有函数和模块化)
3.shell常用命令: grep 查找(错误日志,统计次数); sort 排序 ; wc 统计出现的数量; head 查看前些行; tail 后~; cut 处理数据行; find 查找; xargs 参数处理; which 查找命令路径。
六、shell脚本的执行(一般以.sh结尾) 执行过程:字符解析->shell展开->重定向->执行命令->收集状态并返回
调试shell脚本有三种方法: 1.对于普通log,使用echo,printf 2.使用set 3.vscode辅助