shell脚本source和./执行的区别
时间: 2024-04-27 17:22:00 浏览: 86
`source`和`./`执行脚本的区别在于环境变量和工作目录的不同。
1. `source`命令是在当前的Shell环境中直接读取并执行指定的脚本,因此脚本中定义的变量和函数将会被当前的Shell环境所感知。而`./`执行脚本则是在一个子Shell环境中执行,脚本中定义的变量和函数只在该子Shell环境中有效,执行完后不会对当前Shell环境造成任何影响。
2. `source`命令是直接读取并执行脚本,因此该脚本必须是可以被Shell直接读取和执行的(即该脚本需要有可执行权限),而`./`执行脚本则是通过在当前目录下查找并执行该脚本文件,因此该脚本需要有可执行权限,并且需要在当前目录下。
3. `source`命令不需要指定脚本文件的路径,而`./`执行脚本需要指定脚本文件的相对或绝对路径。
相关问题
shell source ../../../xxx.sh命令是干什么的
shell中的source命令用于在当前shell环境中执行指定的脚本文件(以.sh为扩展名)。在执行source命令后,脚本文件中定义的变量、函数和别名将在当前shell环境中生效,而不是在一个子shell中执行。这使得可以在当前shell环境中加载和使用脚本文件中定义的内容,而不需要创建一个新的子shell。通常,source命令用于加载配置文件或其他需要在当前shell环境中生效的脚本。
source和./的区别
根据你提供的信息,我理解您的问题是关于路径的区别,source和./代表不同的路径形式。
source命令可以用来从指定文件中读取和执行命令。当使用source命令执行脚本时,脚本中的变量和函数可以直接在当前shell环境中使用。
而./则表示当前目录,也就是当前工作目录的路径。例如,如果你在终端中运行./test.sh命令,则会在当前目录中查找test.sh文件并执行它。
总之,source和./代表不同的路径形式,一定要根据具体的需求来使用。
阅读全文