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

50 阅读2分钟

一:shell的语法和命令

自定义变量

当前shell 声明方式 =

直接 变量名=变量值

环境变量

当前shell和子shell export,declare,-x

直接declare

系统环境变量

所以shell 启动加载

一些运算符 || && &(使其在后台运行)

重定向:

  >; 覆盖写入文件
  >>: 追加写入文件
  2>:错误输出写入文件
  &>;正确和错误输出统一写入到文件中
  

判断命令: shell中是提供了test,[,[[ 三种判断符号

这些是可以用来

  • 整数测试;
  • 字符串测试;
  • 文件测试;

循环有三个:

  • while循环
  • until循环
  • for循环

注意点!!:

  • shell是自上而下执行,所以函数是必须使用前来定义;
  • 函数获取变量和shell script非常类似,sy¥0是来代表函数名,后续参数通过11,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查找,然后启动子进程执行;