【发布时间】:2017-05-22 21:55:24
【问题描述】:
我有一个 bash 脚本,它调用三个不同的命令,并且必须在一个 shell 中执行。我通过在每个命令后添加 && 得到它,如下所示-
CMD1 && CMD2 && CMD3
现在我需要的是 - 假设我在我的 MAC 机器上打开一个终端,所有命令都应该在打开的 shell 中运行,而不是在新的子 shell 中。
附带说明 - CMD1 实际上是我的项目目录的源命令,它是一个 bash 脚本,用于设置运行服务器的所有环境变量。
【问题讨论】:
-
您正在寻找
source或.:$> . myscript -
感谢@KyleStrand 实际上我的 CMD1 本身就是一个源命令。这就是为什么我正在寻找在当前 shell 中运行 bash 脚本的原因。因为 CMD2 和 CMD3 依赖于 CMD1 设置的环境。
-
...那么您的问题不清楚;命令本质上不是“源命令”。你的意思是你的脚本实际上看起来像
. CMD1 && CMD2 && CMD3?如果是这样,你的问题应该这么说。 -
环境由子shell继承。
-
请编辑您的问题以阐明您的脚本是什么样的以及您的要求是什么。 “CMD2 和 CMD3 取决于 CMD1 设置的环境”应在问题本身中指定,而不是在注释中。
标签: bash