1: Shell 脚本查错
1.1 set -u
- 执行脚本时,如果遇到不存在的变量,Bash 默认忽略它;
set -u
就用来改变这种行为。脚本在头部加上它,遇到不存在的变量就会报错,并停止执行;
1
2
3
4
5
|
#!/usr/bin/env bash
set -u
echo $a
echo bar
|
1
2
3
4
|
$ bash script.sh
bash: script.sh:行4: a: 未绑定的变量
# 可以看到,脚本报错了,并且不再执行后面的语句
#
|
- -u 还有另一种写法
-o nounset
,两者是等价的; set -o nounset
1.2 set -x
set -x
用来在运行结果之前,先输出执行的那一行命令;-x
还有另一种写法-o xtrace
;
1.3
1.4 Bash 的错误处理
[[ -d $dir_name ]] && cd $dir_name && rm *
: 先判断目录存在,再删除;- bash 的
-x
参数可以在执行每一行命令之前,打印该命令;
1.5 set -e
1.6 其他参数
-
set 命令还有一些其他参数。
set -n
:等同于 set -o noexec,不运行命令,只检查语法是否正确。set -f
:等同于 set -o noglob,表示不对通配符进行文件名扩展。set -v
:等同于 set -o verbose,表示打印 Shell 接收到的每一行输入。set -o noclobber
:防止使用重定向运算符>覆盖已经存在的文件。
上面的-f 和-v 参数,可以分别使用 set +f、set +v 关闭。
2: 设置文本颜色
- 默认情况下,命令提示符是显示终端预定义的颜色。Bash 允许自定义提示符颜色。
- 使用下面的代码,可以设定其后文本的颜色。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
\033[0;30m:黑色
\033[1;30m:深灰色
\033[0;31m:红色
\033[1;31m:浅红色
\033[0;32m:绿色
\033[1;32m:浅绿色
\033[0;33m:棕色
\033[1;33m:黄色
\033[0;34m:蓝色
\033[1;34m:浅蓝色
\033[0;35m:粉红
\033[1;35m:浅粉色
\033[0;36m:青色
\033[1;36m:浅青色
\033[0;37m:浅灰色
\033[1;37m:白色
|
3: 设置 background color
1
2
3
4
5
6
7
8
|
\033[0;40m:蓝色
\033[1;44m:黑色
\033[0;41m:红色
\033[1;45m:粉红
\033[0;42m:绿色
\033[1;46m:青色
\033[0;43m:棕色
\033[1;47m:浅灰色
|
文章作者
lucas
上次更新
2023-05-25
(d843331)