shell脚本调用其他shell
时间: 2023-09-14 09:05:00 浏览: 84
可以使用以下两种方式调用其他 shell 脚本:
1. 使用 source 命令
在当前 shell 中执行另一个 shell 脚本,可以使用 source 命令。例如,假设我们有一个名为 script2.sh 的 shell 脚本,并且想在另一个脚本 script1.sh 中调用它,可以使用以下命令:
```
source script2.sh
```
这会在 script1.sh 中执行 script2.sh 中的所有命令。
2. 使用执行权限调用
在另一个 shell 脚本中调用另一个脚本,可以使用执行权限调用。例如,假设我们有一个名为 script2.sh 的 shell 脚本,并且想在另一个脚本 script1.sh 中调用它,可以使用以下命令:
```
./script2.sh
```
但是,在执行此命令之前,必须给 script2.sh 脚本添加执行权限:
```
chmod +x script2.sh
```
这样,我们就可以在 script1.sh 中调用 script2.sh 脚本了。
相关问题
shell脚本调用其他shell脚本
在shell脚本中,有多种方法可以调用其他的shell脚本。其中最普通的方法是直接在脚本里面使用路径来调用另一个脚本,比如使用`path/to/foo.sh`来调用`foo.sh`这个脚本。例如,如果`foo.sh`在当前目录下,可以使用`./foo.sh`进行调用。这种方法会在运行时新开一个子Shell来执行被调用的脚本。
另一种方法是将另一个脚本所在的路径添加到`$PATH`环境变量中,这样你就可以将其作为普通命令来调用。
此外,还有一些其他的方法可以在一个shell脚本中调用另一个shell脚本。例如,可以使用`source`命令来运行在相同的进程中,这样被调用的脚本中的变量和函数就可以在调用脚本中直接使用。另外,也可以使用`/bin/bash`或`sh`命令来在不同的进程中运行被调用的脚本。还可以使用`.`来运行在相同进程中,这样被调用的脚本中的变量和函数也可以在调用脚本中直接使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [在Shell脚本中调用另一个脚本的三种方式讲解](https://download.csdn.net/download/weixin_38660624/14893274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [shell脚本内调用另外一个shell脚本的几种方法](https://blog.csdn.net/fengbingchun/article/details/129103991)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
shell脚本调用shell
可以使用fork或exec来调用shell脚本。其中,fork是最普通的方法,直接在脚本里面使用path/to/foo.sh来调用foo.sh这个脚本,比如如果是foo.sh在当前目录下,就是./foo.sh。运行的时候terminal会新开一个子Shell执行脚本foo.sh,子Shell执行的时候,父Shell还在。子Shell执行完毕后返回父Shell。子Shell从父Shell继承环境变量,但是子Shell中的环境变量不会带回父Shell。而exec则是直接在当前Shell中执行脚本,不会新开一个子Shell,执行完毕后也不会返回父Shell。以下是两种方法的示例:
1.使用fork调用shell脚本
```shell
path/to/foo.sh
```
2.使用exec调用shell脚本
```shell
exec path/to/foo.sh
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)