关于学习BASH的资料

发布于2021/09/26更新于2024/7/5

这段时间不务正业地在写一个BASH脚本,参考了一些资料,有一些感受,记录一下。

关于学习资料,最先看的是阮一峰推荐《Bash 脚本教程》。🤔怎么说呢,如果作为小白为了看懂BASH脚本来入门的话,这个教程还算有用,毕竟是中文。如果要来写脚本,那有点不太合适了。找来找去,还是在tldp(The Linux Documentation Project)上的两套英文教程最合适:

另外,还有一些资料,比如GNU Bash的手册和一些Wiki等:

前面两套初学指引应该涵盖了绝大部分使用BASH的内容。不过,在具体使用过程中还会有许多坑,或者容易被忽略的地方,可以参考手册和上面提到的Wiki。另外,我列写了一些遇到的问题,作为给自己的参考:

  • 使用[[ ... =~ ... ]]表达式来正则匹配字符串时,正则表达式的规则部分直接写在终端和脚本文件中,以及在脚本文件中直接写在=~边上和用变量代入表达式中,要注意单双引号、空格、$字符、各种括号、正反斜线等特殊字符的转义。原因是在不同界面的多种“扩展(expansion)”。
  • 数组array@*作为索引且于双引号"中时,即"${array[@]}""${array[*]}",扩展后有所不同:前者将数组各元素扩展为多个单字(形式是list),后者将数组各元素以IFS变量中第一个字符连接后扩展为一个单字(形式是一个字串)。
  • 避免在控制台以外的地方使用ls获取多个文件的列表,因为其输出不能保证能够被解析为每个单个文件[见问题解答Greg’s Wiki on ParsingLs];在BASH中可考虑使用*来获取[详见Greg’s Wiki on glob#nullglob]。

Leave a Reply

Your email address will not be published. Required fields are marked *