shell执行方式sh、.以及source区别
时间: 2023-08-13 11:02:25 浏览: 62
在 Linux 系统中,有三种方式可以执行 Shell 脚本,它们是 `sh`、`.` 和 `source`。它们的区别如下:
1. `sh` 命令
`sh` 命令用于执行 Shell 脚本。例如,要执行名为 `test.sh` 的 Shell 脚本,可以使用以下命令:
```
sh test.sh
```
这种方式会启动一个新的 Shell 进程来执行脚本,脚本中的变量和环境变量只对该进程有效,执行结束后会自动退出。
2. `.` 命令
`.` 命令也可以执行 Shell 脚本。例如,要执行名为 `test.sh` 的 Shell 脚本,可以使用以下命令:
```
. test.sh
```
这种方式不会启动一个新的 Shell 进程,而是在当前 Shell 环境中执行脚本,脚本中的变量和环境变量会影响当前 Shell 环境,执行结束后不会自动退出。
3. `source` 命令
`source` 命令也可以执行 Shell 脚本。例如,要执行名为 `test.sh` 的 Shell 脚本,可以使用以下命令:
```
source test.sh
```
这种方式与 `.` 命令类似,也是在当前 Shell 环境中执行脚本,脚本中的变量和环境变量会影响当前 Shell 环境,执行结束后不会自动退出。与 `.` 命令不同的是,`source` 命令可以跨越 Shell 函数和脚本的边界,可以在 Shell 函数和脚本中使用。
相关问题
请将shell语句转化为pytthon: source ./get_directory_list.sh source ./printf_coloring.sh source ./check_directory.sh source ./check_tools_exist.sh check_all_directory_exist ./clean_output_directory.sh ./clean_build_directory.sh ./RebuildProject.sh
以下是将Shell语句转换为Python的等效代码:
```python
import subprocess
subprocess.call(["source", "./get_directory_list.sh"], shell=True)
subprocess.call(["source", "./printf_coloring.sh"], shell=True)
subprocess.call(["source", "./check_directory.sh"], shell=True)
subprocess.call(["source", "./check_tools_exist.sh"], shell=True)
subprocess.call(["check_all_directory_exist"], shell=True)
subprocess.call(["./clean_output_directory.sh"], shell=True)
subprocess.call(["./clean_build_directory.sh"], shell=True)
subprocess.call(["./RebuildProject.sh"], shell=True)
```
在Python中,您可以使用 `subprocess` 模块来执行Shell命令。上述代码使用 `subprocess.call` 函数来执行每个Shell命令,其中第一个参数是命令和参数的列表形式,`shell=True` 参数用于告诉Python运行一个Shell解释器来执行命令。请确保在运行代码之前安装了 `subprocess` 模块。
shell中source、sh、bash、./执行脚本的区别
shell是一个用于操作系统的命令行解释器,用来解释用户的命令并执行操作。在shell中,source、sh、bash和./执行脚本是使用方式不同的四种执行脚本的方法。
首先是source命令,它用于在当前shell环境中执行指定的脚本,也被称为"dot sourcing"。通过"source 脚本文件"的方式来执行。在执行过程中,脚本中的变量和函数将会在当前shell环境中被定义和使用。
其次是sh命令,它是Bourne Shell的简称,是一种常见的UNIX和Linux系统默认使用的shell。通常用于在当前shell环境中执行脚本,使用方式类似于"sh 脚本文件"。sh能够执行简单的脚本,但不支持一些高级特性,如数组、函数等。
bash是目前在Linux系统中广泛使用的shell,是Bourne-Again SHell的缩写。它是Bourne shell的增强版本,具有更多的特性和高级功能。bash可以执行sh脚本,同时也支持更多的特性。
最后是./执行脚本的方式,通常用于执行当前目录下的脚本。使用方式为"./ 脚本文件"。与source命令不同,当用./执行脚本时,将会开启一个新的子shell执行脚本文件,执行结束后子shell将会被关闭。
综上所述,四种不同的执行脚本的方式各有特点,可以根据需要选择适合的方式来执行脚本。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)