一:shell的语法和命令
自定义变量
当前shell 声明方式 =
直接 变量名=变量值
环境变量
当前shell和子shell export,declare,-x
直接declare
系统环境变量
所以shell 启动加载
一些运算符 || && &(使其在后台运行)
重定向:
>; 覆盖写入文件
>>: 追加写入文件
2>:错误输出写入文件
&>;正确和错误输出统一写入到文件中
判断命令: shell中是提供了test,[,[[ 三种判断符号
这些是可以用来
- 整数测试;
- 字符串测试;
- 文件测试;
循环有三个:
- while循环
- until循环
- for循环
注意点!!:
- shell是自上而下执行,所以函数是必须使用前来定义;
- 函数获取变量和shell script非常类似,sy¥0是来代表函数名,后续参数通过2 ...获取
- 函数内的return是仅仅表示函数的执行状态,并不代表函数的执行结果;
- 返回结果一般是使用echo,printf,在外面使用$() 获取结果
- 如果没有return,函数状态是上一条命令的执行状态,可以存储在$?里面
模块化:
模块化的原理是什么?
模块化的原理是当前shell内执行函数文件, 方式是 scorce【函数库的路径】
一些常用的命令
- -a显示所有的文件以及子目录,包括以“”开头的隐藏文件。
- -l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
- -t 将文件按照创建时间排序列出。
- -A 和-a一样,但是不列出“.”(当前目录)和“…”(父目录)。
- -R 递归列出所有文件,包括子目录中的文件。 Shell命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细信息,包括以“”开头的隐藏文件。`
执行过程 1:进行字符解析 来识别换行符,分号(;)作行的分割; 2:shell展开,例如{1...3】会被解析为123 3:重定向,将stdin,stdout,stderr的文件的描述符进行指向的变更 4:执行命令
- builtin直接执行;
- 非builtin使用$path查找,然后启动子进程执行;