shell脚本调用shell
时间: 2023-12-02 18:43:17 浏览: 100
可以使用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
```
相关问题
shell脚本调用其他shell
可以使用以下两种方式调用其他 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 脚本了。
bat脚本调用shell脚本
你可以使用bat脚本来调用shell脚本。下面是一个示例:
```bat
@echo off
echo Calling shell script...
sh script.sh
echo Shell script execution completed.
```
在上面的示例中,bat脚本使用`sh`命令来调用shell脚本`script.sh`。你可以将需要执行的shell脚本放在`script.sh`文件中,并将其与bat脚本放在同一个目录下。当你运行bat脚本时,它将调用shell脚本并执行其中的命令。
请注意,上述示例假设你的系统已经正确配置了shell环境,并且可以通过`sh`命令来执行shell脚本。如果你的系统没有正确配置shell环境,你可能需要提供shell的完整路径来调用shell脚本。
阅读全文