在 shell 脚本中执行另一个shell脚本,这个脚本不会输出打印消息
时间: 2024-04-24 17:25:02 浏览: 6
回答: 在Shell脚本中执行另一个Shell脚本时,如果你希望被调用的脚本不输出打印消息,你可以使用exec命令来调用。exec与fork不同,不需要新开一个子Shell来执行被调用的脚本,而是在同一个Shell内执行。但是需要注意的是,使用exec调用一个新脚本后,父脚本中exec行之后的内容将不会再执行。这是exec和source的区别。\[2\]所以,如果你希望被调用的脚本不输出打印消息,可以使用exec来调用它。
#### 引用[.reference_title]
- *1* *2* *3* [SHELL【1】-在 Shell 脚本中调用另一个 Shell 脚本的三种方式](https://blog.csdn.net/m0_46535940/article/details/124959568)[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^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关问题
shell脚本中调用另一个shell脚本,并打印结果
在shell脚本中调用另一个shell脚本并打印结果,可以使用以下两种方式:
1. 使用source命令或点操作符(.)来执行另一个脚本,并将结果打印出来。例如,假设有两个脚本文件:script1.sh和script2.sh。在script1.sh中调用script2.sh并打印结果的示例代码如下:
```shell
#!/bin/bash
# 调用script2.sh并打印结果
result=$(source script2.sh)
echo "结果是:$result"
```
2. 使用子进程的方式执行另一个脚本,并通过管道将结果传递给当前脚本进行打印。示例代码如下:
```shell
#!/bin/bash
# 调用script2.sh并打印结果
result=$(./script2.sh)
echo "结果是:$result"
```
请注意,以上示例中的"script2.sh"是另一个脚本文件的名称,你需要根据实际情况替换为你要调用的脚本文件的名称。
怎么在shell脚本中应用另一个shell脚本
在Shell脚本中应用另一个Shell脚本,你可以使用以下两种方式:
1. 使用`source`命令或`.`(点)操作符:这两种方式可以将一个Shell脚本嵌入到另一个Shell脚本中,使得被嵌入的脚本中的命令可以在当前脚本中执行。例如,假设你有两个脚本文件 `script1.sh` 和 `script2.sh`,你可以在 `script1.sh` 中使用以下语法来调用 `script2.sh`:
```shell
source script2.sh
```
或者
```shell
. script2.sh
```
这样,`script2.sh` 中的命令将会在 `script1.sh` 中执行。
2. 使用`bash`命令:另一种方法是使用`bash`命令来执行另一个Shell脚本。例如,你可以在 `script1.sh` 中使用以下语法来调用 `script2.sh`:
```shell
bash script2.sh
```
这将启动一个新的Shell进程来执行 `script2.sh` 中的命令。
无论你选择哪种方式,都需要确保被调用的脚本文件具有可执行权限(使用 `chmod +x script2.sh` 命令来添加执行权限),并且文件路径是正确的。这样,你就可以在一个Shell脚本中应用另一个Shell脚本了。