在之前的工作中,总是会碰到写一些shell脚本工具的情况,当时学习了shell的基本内容,做了零散的笔记,然后就搁置了。
最近想玩玩儿 Makefile
,发现里边的写法基本就是shell脚本的套路,但是时间久了,提笔忘字,查阅之前的笔记,非常零散,需要思考好一阵子才能理解。于是就想整理整理,就形成了你所看到的这个小demo项目。
- 介绍shell脚本基本用法,没有太难太复杂的内容
- 只站在使用者的角度看shell脚本,不是对shell极其细致、全面的解析
- 拒绝一切 shell 脚本的奇技淫巧
- 追求简单、够用
-
先阅读本文档,了解各个文件夹的用途;
-
有的文件夹中,会有
README.md
,请按照它的提示开始学习; -
对于没有
README.md
的文件夹,可以直接看shell_
开头的shell脚本,跟着里面的注释做一些操作,进行探索; -
编写时,是用
zsh
运行的,请根据自己的PC配置,选择对应的shell脚本解释器,比如bash
; -
为了快速执行文件夹下的shell脚本,可以使用项目自带的
make
工具。 用法:在Makefile
所在目录下执行make run c=1
。
这将执行1-variable/shell_variable.sh文件。
执行make help
获取更多信息。
每个文件夹聚焦一个知识点,具体对应关系如下:
文件夹名称 | 知识点 |
---|---|
0-notes | 如何使用注释 |
1-variable | 如何使用变量 |
2-number | 如何处理数字 |
3-string | 如何处理字符串 |
4-array | 如何使用数组 |
5-if | 如何使用 if 流程 |
6-case | 如何使用 case 流程 |
7-for | 如何使用 for循环 |
8-while | 如何使用 while循环 |
9-until | 如何使用 until循环 |
10-function | 如何使用 函数 |
11-read | 如何从标准输入接收数据 |
12-include | 如何引入其他 shell脚本 |
13-command_line | 命令行中的参数如何接收 |
对于第一次接触shell的朋友,可以按照顺序看起;
- 完成主体骨架,内容简单,但基础知识点都照顾到了
- 不涉及到shell中一些linux指令用法介绍,比如
xargs
sed
等
-
首先,目前的内容仅是根据我个人的使用经验,并结合一些技术网站的资料整理得到,涉及到的情景有限,如果你在工作中使用了shell脚本,涉及到一些本项目没有提到的知识点、坑,欢迎补充。
-
如果你打算做一些贡献,请建立本地分支,分支命名为
shell_<your nicky name or something else>
。 -
对于已有的知识点做补充,请在相应的文件夹下,创建
example
子文件夹,在里面编写你的shell脚本。 -
对于新的知识点做补充,请参考0-notes~13-command_line文件夹的命名格式创建新的文件夹,当然,标号要从14开始。
-
请确保一个文件夹只交代一个知识点,并配有
README.md
以作说明。 -
编写的 shell 样例脚本尽量简单、明确,注释当中给出一些操作提示,方便读者可以动手参与其中,查看运行现象(PS:光看代码,相当无趣)。
-