脚本执行方式差异
利用直接执行或bash方式来执行script
使用直接指令下达或者利用bash(sh)来执行脚本时,该script会使用一个新的子bash内程序。
source执行脚本
利用source执行脚本,是在父程序中执行。
test指令测试功能
test命令用于检测系统上某些档案的相关属性,比如检测文件是否存在,权限是什么样的等等。使用格式:
test [选项] filename
下面的选项属性介绍,可以使用man test 命令在帮助文档中查看
- -e 该文档是否存在
- -f该文档是否存在且为“文件(file)”
- -d该文档是否存在且为目录(directory)
- -r该文档是否存在且具有 可读(read) 的权限
- -w该文档是否存在且具有 可写(write) 的权限
- -x该文档是否存在且具有 可读(execute) 的权限
- !表示反向状态。
- -a(and)两状况同时成立,返回true
- -o(or)两状况任何一个成立,返回true
- -z(zero)判断字符串是否为0?若字符串非空,返回true
- -n(nonzero)判断字符串是否为非0,若字符串为空,返回false,可省略
shell script的debug
脚本载执行之前,最害怕出现语法错误。debug可以使用bash的相关参数进行判断。
bash [-nvx] hello.sh
选项参数含义说明:
- -n:不执行脚本,仅查询语法的问题
- -v:在执行脚本之前,先将脚本内容输出到屏幕上
- -x将使用道德脚本内容显示到屏幕上 -