我有这个基于 Windows 的版本,它在多线程中打开我当前的任务。不过,它打开多个线程仍然可以接受。 我想把它移植到 Linux 上吗?我对 Linux 的了解有限,因此希望有人能在这里提供帮助。
clean.bat
ant -DCorrelator.port="15800" clean
*start_parallel.bat*
call clean.bat
start "Engine 1500" ant -Dengine.port="15800" -Dfamily.one="true" -Dfamily.two="false" start
start "Engine 1505" ant -Dengine.port="15805" -Dfamily.one="false" -Dfamily.two="true" start
最佳答案
我必须承认,我不确定我完全理解你的场景,但是要在 Linux 中并行运行任务,你可以使用 &
将它们放在后台。
示例:
start "Engine 1500" ant start &
start "Engine 1505" ant start &
要调用其他脚本,只需从第一个 shell 脚本执行它即可。
所以总共你会有:
clean.sh:
#!/bin/sh
ant -DCorrelator clean
start_parallel.sh
#!/bin/sh
clean.sh
start "Engine 1500" ant -Dengine.port="15800" -Dfamily.one="true" -Dfamily.two="false" start &
start "Engine 1505" ant -Dengine.port="15800" -Dfamily.one="false" -Dfamily.two="true" start &
确保使用 chmod
使两个脚本可执行:
chmod +x clean.sh
chmod +x start_parallel.sh
Linux 仅在您的路径 (echo $PATH
) 中查找可执行脚本。如果要在不同的目录中执行脚本,则必须至少给出其相对路径。如果脚本位于当前目录中,请执行以下操作:
./start_parallel.sh
您还必须在脚本中将 clean.sh
调用为 ./clean.sh
。为了避免这种情况,我建议您将脚本放入路径中的目录中,通常是 /usr/local/bin/
或在主目录中创建 bin
目录,然后使用 例如
.profile` 将其添加到您的路径中。
干杯。
关于linux - 将 Windows 批处理文件移植到 shell 脚本。如果可能的话并行执行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18560928/