本节课主要介绍了Shell的基础概念、命令和语法、执行过程和原理、调试和前端集成。我从中学习到了以下几点:
- Shell是一种解释型的脚本语言,它可以在终端中执行各种命令,实现对系统的管理和控制。Shell有多种不同的版本,如Bash、Zsh、Ksh等,它们有一些共同的特性,也有一些不同的特性。
- Shell脚本的执行方式有三种:直接在终端中输入命令,使用./或source命令执行脚本文件,或者将脚本文件作为参数传递给Shell解释器。不同的执行方式会影响到Shell的配置文件读取和环境变量的设置。
- Shell脚本的配置文件有两种:全局配置文件和用户配置文件。全局配置文件对所有用户都有效,用户配置文件只对当前用户有效。不同的Shell版本和执行方式会读取不同的配置文件,一般来说,全局配置文件在/etc目录下,用户配置文件在~目录下。
- Shell脚本的命令执行机制是:先将一行命令分割成多个单词,然后对每个单词进行扩展和替换,最后将扩展后的单词作为参数传递给命令。扩展和替换包括变量扩展、波浪号扩展、花括号扩展、路径名扩展、引号移除等。
- Shell脚本的字符串匹配机制是:使用通配符(
* ? [ ])来匹配一个或多个字符,使用转义符(\)来取消通配符的特殊含义,使用正则表达式(^ $ . * + ? [ ] ( ) |)来匹配复杂的模式。通配符主要用于路径名扩展,正则表达式主要用于grep、sed等工具。 - Shell脚本的默认变量有很多,如
$?表示上一个命令的退出状态,$0表示当前脚本的名称,$#表示传递给脚本的参数个数,$*或$@表示传递给脚本的所有参数,$$表示当前Shell进程的ID等。这些变量可以用于获取和控制Shell脚本的运行信息。 - Shell脚本的判断命令有两种:test或
[ ],用于判断文件属性、字符串比较、数值比较等条件;[[ ]],用于判断复杂的条件,支持正则表达式和逻辑运算符。判断命令的结果是真(0)或假(非0),可以用于if、while等结构中。 - Shell脚本的选择命令有两种:case,用于根据一个变量的值选择不同的分支执行;select,用于从一个列表中选择一个选项,并将其赋值给一个变量。选择命令可以实现多重分支和菜单式交互。
- Shell脚本的循环命令有三种:for,用于遍历一个列表或一个范围内的值;while,用于根据一个条件重复执行一段代码;until,用于根据一个条件反复执行一段代码,直到该条件成立。循环命令可以实现重复性任务和递归算法。
通过这节课,我对Shell脚本有了更深入的理解,也发现了自己需要进一步学习和练习的地方。