Skip to content

Commit

Permalink
+ add dev guide #64
Browse files Browse the repository at this point in the history
  • Loading branch information
oldratlee committed Aug 28, 2021
1 parent c0e3b75 commit cb88d22
Showing 1 changed file with 110 additions and 2 deletions.
112 changes: 110 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
👉 把平时有用的手动操作做成脚本,这样可以便捷的使用。 ✨

有自己用的好的脚本 或是 平时常用但没有写成脚本的功能,欢迎提供([提交Issue](https://github.com/oldratlee/useful-scripts/issues))和分享([Fork后提交代码](https://github.com/oldratlee/useful-scripts/fork))! 💖
有自己用的好的脚本 或是 平时常用但没有写成脚本的功能,欢迎提供([提交Issue](https://github.com/oldratlee/useful-scripts/issues)和分享([Fork后提交代码](https://github.com/oldratlee/useful-scripts/fork))! 💖

本仓库的脚本(如`Java`相关脚本)在阿里等公司(如随身云,见[`awesome-scripts`仓库](https://github.com/Suishenyun/awesome-scripts)说明)的线上生产环境部署使用。
如果你的公司有部署使用,欢迎使用通过[提交Issue](https://github.com/oldratlee/useful-scripts/issues)告知,方便互相交流反馈~ 💘
Expand All @@ -29,7 +29,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/oldratlee/useful-scripts/m

更多下载&使用方式,参见[下载使用](docs/install.md)

📚 使用文档
📚 用户使用文档
----------------------

### [`Java`相关脚本](docs/java.md)
Expand Down Expand Up @@ -72,3 +72,111 @@ source <(curl -fsSL https://raw.githubusercontent.com/oldratlee/useful-scripts/m
目前`VCS`的脚本都是`svn`分支相关的操作。使用更现代的`Git`吧! 💥

因为不推荐使用`svn`,这里不再列出有哪些脚本了,如果你有兴趣可以点上面链接去看。

## Dev Guide

为用户提供有用的功能当然是这个库的首要的价值体现和存在理由。

但作为一个**开源**项目,每个人都可以看到源码实现的,这个库或许能做得更多。

### 面向开发者的目标

- 期望体现`Shell/Bash`脚本生产环境级的严谨开发方式与最佳实践,进而有可能改善大家在生产环境中`Shell`脚本的质量状况。
-`Shell/Bash`看作线上生产环境可使用的专业语言。

PS:

- 虽然上面是自己期望的目标,但自己在`Shell`语言上一定会有很多理解和使用上的问题,这些实现脚本中也会很多需要的改进,可以一起学习、讨论与实践~ 💕
- 这个库脚本的实现 也使用了`Python`

#### 关于`Shell`脚本

命令行(`CLI`)几乎是每个程序员几乎每天都要使用的工具。相比图形界面工具(`GUI`),命令行有着自己不可替代的便利性和优越性。

命令行里写出来其实就是`Shell`脚本,可以说每个开发者会写`Shell`脚本(或多或少)。在生产环境的功能实现中,也常常会看到`Shell`脚本(虽然不如主流语言不那么常见)。

可能正因为上面所说的`Shell`脚本的便利性和大众性,`Shell`脚本的实现常常质量不高;包含生产环境的`Shell`脚本,不少是顺手实现的。

### 开发约定

这个库里,`Shell`脚本都使用`Bash 3+`

原因是:

- 个人系统学习过的是`Bash`,比较理解熟悉。
- `Bash`目前还是`Shell`编程主流。
PS: 虽然交互`Shell`个人已经使用`Zsh`,但严谨的`Shell`脚本开发时还是使用`Bash`

### `Shell`学习与开发的相关资料

- 👷 **`Bash/Shell`最佳实践与安全编程**
- **_`Google Shell Style Guide`_**
- https://google.github.io/styleguide/shell.xml
- 中文版 https://zh-google-styleguide.readthedocs.io/en/latest/google-shell-styleguide/background/
- 编写可靠shell脚本的八个建议
https://www.xshell.net/shell/1577.html
- Bash Pitfalls: 编程易犯的错误 - 团子的小窝
- http://kodango.com/bash-pitfalls-part-1
- http://kodango.com/bash-pitfalls-part-2
- http://kodango.com/bash-pitfalls-part-3
- http://kodango.com/bash-pitfalls-part-4
- Shell 编码风格 - 团子的小窝
http://kodango.com/shell-script-style
- Bash 优良编程实践
http://blog.jobbole.com/93447/
- 不要自己去指定sh的方式去执行脚本
https://github.com/oldratlee/useful-scripts/issues/57#issuecomment-326485965
- Use the Unofficial Bash Strict Mode (Unless You Looove Debugging)
http://redsymbol.net/articles/unofficial-bash-strict-mode/
- koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts
https://github.com/koalaman/shellcheck
- 🎶 **Tips**
- 让你提升命令行效率的 Bash 快捷键 【完整版】
https://linuxtoy.org/archives/bash-shortcuts.html
补充:`ctrl + x, ctrl + e` 就地打开文本编辑器来编辑当前命令行,对于复杂命令行特别有用
- 应该知道的Linux技巧 | | 酷 壳 - CoolShell
https://coolshell.cn/articles/8883.html
- 简洁的 Bash Programming 技巧 - 团子的小窝
- http://kodango.com/simple-bash-programming-skills
- http://kodango.com/simple-bash-programming-skills-2
- http://kodango.com/simple-bash-programming-skills-3
- Bash 测试和比较函数 — `test``[``[[``((`、和 `if-then-else` 解密
https://www.ibm.com/developerworks/cn/linux/l-bash-test.html
- Filenames and Pathnames in Shell (bash, dash, ash, ksh, and so on): How to do it Correctly
https://dwheeler.com/essays/filenames-in-shell.html
- 理解 IFS - 团子的小窝
http://kodango.com/understand-ifs
- shell中的IFS详解 – 笑遍世界
http://smilejay.com/2011/12/bash_ifs/
- Bash脚本:怎样一行行地读文件(最好和最坏的方法)
http://blog.jobbole.com/72185/
- Shell 脚本避免多次重复 source - 团子的小窝
http://kodango.com/avoid-repeated-source-in-shell
- 一个奇怪的 echo 结果 - 团子的小窝
http://kodango.com/a-strange-echo-result
- 浅谈 Shell 脚本配置文件格式 - 团子的小窝
http://kodango.com/config-file-format-in-shell
- Bash function 还能这么玩 - 团子的小窝
http://kodango.com/bash-functions
- Bash 获取当前函数名 - 团子的小窝
http://kodango.com/get-function-name-in-bash
- Zsh和Bash,究竟有何不同 坑很深
https://www.xshell.net/shell/bash_zsh.html
- 💎 **系统学习**
看文章、了解Tips完全不能替代系统学习才能真正理解并专业开发!
- [Bash Pocket Reference](https://book.douban.com/subject/26738258/)
力荐!说明简单直接结构体系的佳作,专业`Bash`编程必备!且更新到了新版的`Bash 4`
- [学习bash](https://book.douban.com/subject/1241361/)
上面那本的展开版
- Bash的官方手册(`man`的中文译文)
http://ahei.info/chinese-bash-man.htm
- Bash Reference Manual http://www.gnu.org/software/bash/manual/
官方文档,讲得全面且有深度,比如会全面地讲解不同转义的区别、命令的解析过程,这有助统一深入的方式认识Bash整个执行方式和过程。这些内容在其它书中往往不会讲(因为复杂难于深入浅出的讲解),但却一通百通的关键。
- [命令行的艺术- github.com/jlevy/the-art-of-command-line](https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md)
- wzb56/13_questions_of_shell: shell十三问--shell教程 https://github.com/wzb56/13_questions_of_shell
- 信息来自 https://github.com/KeKe-Li/book#linux
- alebcay/awesome-shell: A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
https://github.com/alebcay/awesome-shell
- 实用 Shell 文档 - 团子的小窝
http://kodango.com/useful-documents-about-shell
- 更多参见个人整理的[书籍豆列 **_`Bash/Shell`_**](https://www.douban.com/doulist/1779379/)

0 comments on commit cb88d22

Please sign in to comment.