同时运行2个sh文件

时间:2014-04-08 01:34:45

标签: shell unix sh

我想同时运行2个sh文件。你能告诉我怎么做吗?

示例:我有a.sh个文件和b.sh文件,我想用线程同时运行这些文件。

2 个答案:

答案 0 :(得分:1)

在后台运行至少其中一个。这是一个单独的进程,不是一个单独的线程;但无论如何,你无法在同一个过程中真正运行不同的程序。

./a.sh &
./b.sh
wait

这将在后台启动a.sh,并在前台运行b.sh。如果首先完成,我们还wait完成后台处理。

输出缓冲等存在各种问题,这些问题通常会使新手感到困惑。在提出更多问题之前,您应该找到有关后台工作的教程或常见问题解答。以下是Google的一些点击:

答案 1 :(得分:0)

嗯,如果你想让它们在同一时间运行那么,那可能就不那么简单......我甚至不确定是否可能。我能想到的最好的是:

./a.sh ; ./b.sh

它们将一个接一个地执行,并且根据完成它需要多长时间a.sh可能需要一段时间。另一种选择是使用调度程序,例如cronat - 可能在操作系统级别有一些 magic ,允许两个脚本在同一时间如果安排那样。


修改

根据评论,我更正了& ;导致的语法错误。感谢您指出了这一点。

关于其他评论,我认为这些命令是按顺序运行的,如bash自述文件中所述:

  

由a分隔的命令;按顺序执行; shell等待   为每个命令轮流终止。返回状态是   退出执行的最后一个命令的状态。

因此,./a.sh ; ./b.sh将首先执行a.sh,等待它完成,然后运行b.sh