使用线程运行两个shell文件

使用线程运行两个shell文件

我如何才能并行运行两个文件 shell 而不共享同一个 jvm。我可能使用线程,但是我如何通过两个线程运行两个文件 shell 呢?文件 1:

#!/bin/bash
#
# Script for running several experimentations one the same JVM
# Usage : TRACE_DIR NB_EXPE Factories... 
#

param="parameter1"
another="parameter2"

for ((i = 10; i >= 0; i -= 1))
do
echo "run my file with param another " 
done  

文件2:

#!/bin/bash
#
# Script for running several experimentations one the same JVM
# Usage : TRACE_DIR NB_EXPE Factories... 
#

a="101" b="400" c="500"

echo "run my programme with a b c "

答案1

如果您想并行运行 2 个 shell 脚本,可以使用以下语法:

script1 & script2 &

作为示例,请看一下以下测试脚本(名为p1):

i=1
while true;
do
    echo "1 $((i++))"
    sleep 1
    if [ $i -gt 10 ]; then break; fi
done

它会数到 10,并在计数器前回显“1”。10 次迭代后,它会退出。

现在如果你创建一个p2版本,只需修改echo一点:

    echo "2 $((i++))"

尝试使用上述语法运行脚本:

$ ./p1 & ./p2 &
1 1
2 1
1 2
2 2
1 3
2 3
1 4
2 4
1 5
2 5
1 6
2 6
1 7
2 7
1 8
2 8
1 9
2 9
1 10
2 10

如您所见,两个脚本都显示了它们的输出,并在 10 轮后退出。请注意,输出是混合的,因此它们并行运行。

相关内容