0%

set

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-a  标示已修改的变量, 以供输出至环境变量. 

-b  使被中止的后台程序立刻回报执行状态.

-C  转向所产生的文件无法覆盖已存在的文件.

-d  Shell预设会用杂凑表记忆使用过的指令, 以加速指令的执行. 使用-d参数可取消.

-e  若指令传回值不等于0, 则立即退出shell.

-f   取消使用通配符.

-h  自动记录函数的所在位置.

-H Shell  可利用"!"加<指令编号>的方式来执行history中记录的指令.

-k  指令所给的参数都会被视为此指令的环境变量.

-l  记录for循环的变量名称.

-m  使用监视模式.

-n  只读取指令, 而不实际执行.

-p  启动优先顺序模式.

-P  启动-P参数后, 执行指令时, 会以实际的文件或目录来取代符号连接.

-t  执行完随后的指令, 即退出shell.

-u  当执行时使用到未定义过的变量, 则显示错误信息.

-v  显示shell所读取的输入值.

-x  执行指令后, 会先显示该指令及所下的参数.

+<参数>  取消某个set曾启动的参数.

1. debug 模式

  1. 在脚本中有选择的开启/关闭 debug 模式
1
2
3
4
5
6
7
8
# 开启 debug 模式, 将后续命令输出到终端
# 对整个脚本都有效
set -x

# ...执行各种命令

# 关闭 debug 模式
{ set +x; } 2>/dev/null
  1. debug 模式执行脚本
1
sh -x $shell_script