变量在正是一点的程序里是必备项目.shell 的变量会保留字符串值,而大量的运算符可以在${var...}里使用,让你控制变量的结果.
shell 提供了许多的特殊变量(例如#?与$!),用来访问特殊信息,例如,命令退出状态.shell 也有许多预定义的特殊变量,例如 PS1----用来设置主要提示符.位置参数与$*和$@这类的特殊变量,则用来在脚本(或函数)被引用是,让用户可以访问被使用的参数.env,export 以及 readonly则用来控制环境.
$((...))的算术展开提供完整的算术运算能力,且使用与 C 相同的运算符与优先级.
程序的退出状态是一个小的整数,可以在程序完成后,攻饮用者使用;shell 脚本使用 exit 命令来做这件事,而 shell 函数则使用 return 命令.shell 脚本可以取得在特殊变量$?内执行的最后一个命令的退出状态.
退出状态可以搭配 if,while 与 until 语句来进行流程控制,也可以与!,&&,以及||运算符搭配使用.
test 命令及其别名[...],可测试文件属性和字符串与数值,在 if,while 以及 until 语句里,他也相当有用.
for 提供遍历整组值的的循环机制,这整组的值可以是字符串,文件名或其他等等.while 与 until 提供比较传统的循环方式,加上 break 和 continue 提供额外的循环控制.case 语句提供一个多重比较功能,类似 C 与 C++里面的 switch 语句.
getopts,shift 与$#提供处理命令行的工具.
最后 shell 函数可将相关命令组织到一起,之后再将它视为一个单独调用使用.他们有点像 shell 脚本,只不过他将命令存放在内存里,这样更有效率,且他们还能影响引用脚本的变量与状态.