我想同时运行2个sh文件。你能告诉我怎么做吗?
示例:我有a.sh
个文件和b.sh
文件,我想用线程同时运行这些文件。
答案 0 :(得分:1)
在后台运行至少其中一个。这是一个单独的进程,不是一个单独的线程;但无论如何,你无法在同一个过程中真正运行不同的程序。
./a.sh &
./b.sh
wait
这将在后台启动a.sh
,并在前台运行b.sh
。如果首先完成,我们还wait
完成后台处理。
输出缓冲等存在各种问题,这些问题通常会使新手感到困惑。在提出更多问题之前,您应该找到有关后台工作的教程或常见问题解答。以下是Google的一些点击:
答案 1 :(得分:0)
嗯,如果你想让它们在同一时间运行那么,那可能就不那么简单......我甚至不确定是否可能。我能想到的最好的是:
./a.sh ; ./b.sh
它们将一个接一个地执行,并且根据完成它需要多长时间a.sh
可能需要一段时间。另一种选择是使用调度程序,例如cron
或at
- 可能在操作系统级别有一些 magic ,允许两个脚本在同一时间如果安排那样。
修改强>
根据评论,我更正了& ;
导致的语法错误。感谢您指出了这一点。
关于其他评论,我认为这些命令是按顺序运行的,如bash自述文件中所述:
由a分隔的命令;按顺序执行; shell等待 为每个命令轮流终止。返回状态是 退出执行的最后一个命令的状态。
因此,./a.sh ; ./b.sh
将首先执行a.sh
,等待它完成,然后运行b.sh
。