参考文章Linux sh、source和.命令执行.sh文件的区别
执行shell脚本的方式
有这么几种方式可以运行.sh脚本文件
- sh [file]
- source [file]
- . [file]
- ./[file]
.
和source
是同一个命令,简称点命令
准备一个shell脚本文件,内容随意写点,这里我准备的内容如下:
此时该文件还不是可执行状态
在bash shell中
对于. [file]
和./[file]
,在bash shell中
在zsh中
而在zsh中,点命令不能执行无运行权限的.sh文件
给脚本加上可执行权限chmod ugo+x 'shell script.sh'
再在zsh中使用点命令
看来zsh中单独一个.
并非等于source
在bash shell和zsh中的source,sh命令
先把文件的可执行权限去掉
- 在zsh中
- 在bash shell中
在bash shell和zsh中,source
和sh
都可以执行没有执行权限的脚本文件内容
./[file]
的方式,是在当前shell执行文件本身,把.sh当做一个可执行文件,所以需要.sh的可执行运行权限。当如此运行文件时,有两个进程:一个是运行的'shell script.sh'本身,另一个是.sh脚本内的内容,.sh内的执行的其他程序。sh [file]
的方式,是新建一个shell在运行.sh里的程序,不需要可执行权限,但需要可读权限,此方式运行会产生两个进程:一个是shell,另一个是运行脚本内容。source [file]
方式,是在当前shell执行脚本内容,不需要可执行权限,但需要可读权限。此方式执行仅有一个进程,既运行的脚本内容。. [file]
方式同source [file]
方式,但在不同shell中可能不支持
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。