我一直觉得写好Bash shell脚本是一件很cool的事,短短几行代码,就能完成其它编程语言几十行甚至上百行代码才能完成的功能,可惜我自己写Bash shell脚本能力实在不敢恭维。在这篇文章,我把自己认为一些比较好的Bash shell编程资料分享出来,希望可以给大家一点帮助。

我个人看过的最好的Bash shell编程入门资料是《Linux程序设计》的第二章:shell程序设计,看这一章的同时自己动手实践,我觉得入门基本没问题了。

入门之后,我建议大家一定要看CU论坛上shell大牛网中人经典的《shell十三问》系列文章,这些文章把很多shell编程tricky的东西讲的很细,很明白。我每次读都有新的收获。

关于如何调试shell程序,推荐coolshell上的文章:如何调试bash脚本,在我这篇文章结尾提到的bashdb调试器,我这几天还用了一下。虽然比起gdb还差了很远(比如没有命令自动补全功能,等等),但总体感觉还可以,可以提高调试效率。

最后推荐两个网站: 
http://www.shellcheck.net/:用来检测shell脚本,帮你发现问题。 
http://explainshell.com/:用来帮你理解shell脚本。

好了,动手实践吧。Happy bashing! Happy hacking!

学习Bash shell编程资料推荐相关推荐

  1. shell美元符_美元符号_笨办法学Bash Shell编程-基础篇视频课程_Linux视频-51CTO学院...

    聪明人下笨功夫.本课程所倡导"笨办法"的核心是: ● 手动输入所有代码,不要复制粘贴! ● 正确地输入所有代码,也包括注释 ● 运行代码并保证产生相同的输出 ● 如果出现了bug, ...

  2. linux 命令详解 大于号_大于号与小于号_笨办法学Bash Shell编程-基础篇视频课程_Linux视频-51CTO学院...

    聪明人下笨功夫.本课程所倡导"笨办法"的核心是: ● 手动输入所有代码,不要复制粘贴! ● 正确地输入所有代码,也包括注释 ● 运行代码并保证产生相同的输出 ● 如果出现了bug, ...

  3. linux 中输入bash,Linux上Bash Shell编程

    Linux下Bash Shell编程 Bash Shell Programming in Linux Linux下Bash Shell编程 Bash what? 进阶的内容是什么? Okay, I g ...

  4. Linux学习:Shell编程总结

    在学习L为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是shell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用 ...

  5. linux 10 -Bash Shell编程

    二十三. Bash Shell编程: 1.  读取用户变量:     read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如果 ...

  6. 【shell编程基础0】bash shell编程的基本配置

    前面一篇"shell编程之变量篇"主要讲述下shell编程的变量的基本知识:设置变量的方式,自定义变量和环境变量的差别,变量的替换.删除.测试等. 这一篇主要是讲述在bash sh ...

  7. 基于Linux的bash/shell编程基础

    目录 第一章 shell入门 1.什么是shell 2.shell入门 3,变量的定义和使用 4.接收用户输入(重点) 5.条件判断语句 6.运算符 6.1.算数运算符 6.2.关系运算符 6.3.逻 ...

  8. Linux bash shell 编程笔记(基础篇)

    文章目录 Part.I Introduction Chap.I 传送门 Chap.II 基础知识 Chap.III 实操笔记 Part.II 程序设计控制结构 Chap.I if 分支程序 Chap. ...

  9. bash/shell编程学习(2)

    先来复习上节重定向的用法: 1.快速清空文件 cat demo.txt < /dev/null 注:linux中有一个经典名言[一切皆文件],/dev/null可以认为是一个特殊的空文件,更形象 ...

  10. Linux Bash Shell编程快速入门

    BASH 的基本语法 最简单的例子 -- Hello World! 关于输入.输出和错误输出 BASH 中对变量的规定(与 C 语言的异同) BASH 中的基本流程控制语法 函数的使用 2.1     ...

最新文章

  1. 如何新增或修改ns2的核心模組--queue management
  2. es6方法过滤掉两个数组中对象id值相等的项
  3. math 计算float_Java Math类静态float min(float f1,float f2)与示例
  4. mysql innodb表移植_mysql Innodb引擎独立表空间下通过复制.ibd文件快速迁移数据文件...
  5. 超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
  6. Node.js是什么?
  7. spark集群访问mysql_spark连接数据源以及在spark集群上跑
  8. pandas read_sql
  9. 1614. 括号的最大嵌套深度
  10. java 反射 getClass()
  11. flAbsPath on /var/lib/dpkg/status failed - realpath
  12. priority_queue C++
  13. 简洁免费的内网穿透工具
  14. Java实现进阶版凯撒密码
  15. 数据库实体关系图(ERD)
  16. linux删除svn版本库
  17. 告诉你四川火锅的秘密配方
  18. springboot+shiro自定义拦截器互踢问题
  19. 生物学重复好不好--看看样本相关性
  20. pyhacm 激活码

热门文章

  1. caxa 拉伸命令的使用(一次拉伸很多线)
  2. aop切面重复调用两次controller
  3. 计算机的符号名称大全集,特殊符号大全(标点符号/括号等)
  4. Tomcat 中文乱码
  5. GTP协议中的APN,TEID,NSAPI,TID
  6. 三菱f800变频器 频率设定_三菱plc和变频器通讯怎么设置频率
  7. Au 音频效果参考:混响
  8. matlab-基础 取整函数 向0取整 取最近整数 向上取整 向下取整
  9. Matlab 的fspecial函数用法
  10. Spring Boot(三):Spring Boot Jpa的介绍及Jpa的使用