方式1:直接运行
方式2:使用命令 sh 或 bash
方式3:使用命令 source 或 .
分类:
-
是否需要执行权限
只有方式1需要执行权限。这是因为方式1把脚本作为可执行文件,自然需要执行权限,但方式2和方式3都是把脚本作为命令的参数,可以不具备执行权限 -
是否会创建子进程
只有方式3不会创建子进程,会直接在当前shell环境中执行(主要区别在于变量的作用域,父子进程变量的继承关系)
采用何种解释器执行脚本?
在脚本文件的第一行可以添加shebang(也称为hashbang)行,指定要用于解释和执行该脚本的解释器
在方式2中,sh命令和bash命令并不受shebang行的影响,sh命令则使用sh解释器,bash命令使用bash解释器
在方式1和3中,添加了shebang行则按照shebang指定的解释器执行,若未添加,则使用系统默认的解释器(根据环境变量$SHELL)来执行脚本