如何在同一Shell中执行bash脚本

10

我有一个bash脚本需要同时执行三个不同的命令,并且这些命令必须在同一个shell中执行。我通过在每个命令之间添加“&&”来实现,具体如下:

CMD1 && CMD2 && CMD3

现在我需要的是,假设我在我的MAC机器上打开一个终端,所有命令都应该在打开的shell中运行,而不是在新的子shell中运行。
顺便说一下,CMD1实际上是我的项目目录的源命令,它是一个bash脚本,为运行服务器设置了所有环境变量。

3
你正在寻找“source”或“.”: $> . myscript 可以翻译为“你正在寻找"source"或".":$> . myscript”。 - Kyle Strand
如果您的问题不清楚,那么命令本身并不是“源命令”。您的脚本是否实际上看起来像. CMD1 && CMD2 && CMD3?如果是这样,您的问题应该这样说。 - Kyle Strand
环境被子shell继承。 - William Pursell
1
请编辑您的问题,澄清您的脚本外观和要求。 "CMD2和CMD3取决于CMD1设置的环境"应在问题本身中指定,而不是在评论中。 - Kyle Strand
@KyleStrand修改了问题。希望现在更清楚了。 - Sam
显示剩余2条评论
1个回答

30

首先,您需要将命令保存到脚本文件中,例如Myscript.sh

其次,您可以执行脚本文件以同时运行您的命令,使用以下方法:

. ./Myscript.sh

第一个.代表当前shell,第二个.代表当前目录。


3
最好也解释一下它实际上是在获取bash脚本。 - Daniel Hajduk
运行脚本时使用source和上面提到的答案有什么区别? - Shivam Anand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接