Linux系统上运行.sh的两种方式

1、Excute

./scriptname.sh

或者

bash scriptname.sh

都是直接运行这个shell文件,这种情况下$0则为该shell文件的名称

2、Source

source scriptname.sh

或者

. scriptname.sh

这两种情况,$0则为bash而不是shell文件名,因此如果你的shell文件里使用了$0要格外注意。

3、异同

  • Executing the Script:

1、创建一个新的进程来执行script
2、shell中的变量改变不会影响当前的父进程
3、需要执行权限如chmod +x scriptname.sh

  • Sourcing the Script:

1、在当前shell进程执行shell script
2、环境变量的改变会影响当前的shell进程,因此source通常用来使得环境变量持久化
3、不需要执行权限,因为并没有在独立进程执行该shell script

你可能感兴趣的:(计算机科学与技术,linux,运维,服务器,shell)