test_temporary_files() {
local dir=/tmp
touch $dir/a-pid1232.tmp
touch $dir/a-pid1232-daemon.tmp
returns "$dir/a-pid1232.tmp" temporary_files $dir
touch $dir/b-pid1534.tmp
returns "$dir/a-pid1232.tmp $dir/b-pid1534.tmp" temporary_files $dir
}
如你所见,这个测试不关心main()。
五、调试函数
带-x标志运行程序:
bash -x my_prog.sh
只调试一小段代码,使用set-x和set+x,会只对被set -x和set +x包含的当前代码打印调试信息。
temporary_files() {
local dir=$1
set -x
ls $dir
| grep pid
| grep -v daemon
set +x
}
打印函数名和它的参数:
temporary_files() {
echo $FUNCNAME $@
local dir=$1
ls $dir
| grep pid
| grep -v daemon
}
调用函数:
temporary_files /tmp
会打印到标准输出:
temporary_files /tmp
六、代码的清晰度
这段代码做了什么?
main() {
local dir=/tmp
[[ -z $dir ]]
&& do_something...
[[ -n $dir ]]
&& do_something...
[[ -f $dir ]]
&& do_something...
[[ -d $dir ]]
&& do_something...
}
main
让你的代码说话:
is_empty() {
local var=$1
[[ -z $var ]]
}
is_not_empty() {
local var=$1
[[ -n $var ]]
}
is_file() {
local file=$1
[[ -f $file ]]
}
is_dir() {
local dir=$1
[[ -d $dir ]]
}
main() {
local dir=/tmp
is_empty $dir
&& do_something...
is_not_empty $dir
&& do_something...
is_file $dir
&& do_something...
is_dir $dir










