循环
for/do/done
Shell
脚本的
for
循环结构和
C
语言很不一
-
样,它类似于某些编程语自的
foreach
循环。
while/do/done
while
的用法和
C
语言类似。
break/continue
break[n]
可以指定跳出几层循环
: continue
跳过本次循环,但不会跳出循环。
即
break
跳出,
continue
跳过。
位置参数和特殊变量
$0 相当于c语言main函数的argv[0]
$1/$2... 这些称为位置参数(Positional Parameter), 相当于c语言main函数的argv[1]、argv[2]...
$# 计算命令行参数个数,不包含$0
$@ 表示参数列表"$1" "$2" ... 例如可以用在for循环中的in后面。
$* 表示参数列表"$1” "$2” ... 同上。
$? 上一条命令的Exit status
$$ 获取当前进程号。
输入输出
echo
显示文本行或变量,或者把字符串输入到文件。
管道
可以通过
|
把一个命令的输出传递给另一个命令做输入
tee
tee
命令把结果输出到标准输出,另一个副本输出到相应文件
函数
和
C
语言类似,
Shell
中也有函数的概念,但是函数定义中没有返回值也没有参数列表。
shell
调试
Shell
提供了一些用于调试脚本的选项,如
:
-n
读一遍脚本中的命令但不执行,用于检查脚本中的语法错误
-v
一边执行脚本,一边将执行过的脚本命令打印到标准输出
-x
提供跟踪执行信息,将执行的每一条命令和结果依次打印出来。
这些选项有三种常见的使用方法
:
1.
在命令行提供参数。
2.
在脚本开头提供参数。
3.
在脚本中用
set命令启用或禁用参数。set -x
和
set +x
分别表示启用和禁用
x
参数,这样可以只对脚本中的某一段进行跟踪调试