同时运行具有不同参数的多个 shell 实例

同时运行具有不同参数的多个 shell 实例

假设我有一个 python 脚本,想要使用不同的参数组合运行(我有 MacBook Pro)。如果我使用 shell 脚本来执行此操作(例如),那么同时run.sh运行多次(每次都使用不同的参数组合)是否有意义?run.sh换句话说,不同的参数组合在内存中运行时是否会相互接触?这是不是有点像内存保护的概念?

答案1

这很大程度上取决于 python 脚本的作用run.sh

让我们举一个非常简单的例子:

#!/bin/bash

s=$(( RANDOM%5 ))
echo Sleeping for $s > /tmp/foo
sleep $s
echo You entered $1 >> /tmp/foo
cat /tmp/foo

现在如果我这样做了

./run.sh 1 &
./run.sh 2 &
./run.sh 3 &

我不知道输出会是什么。这是因为脚本只有一个资源 ( /tmp/foo),无法多次访问;一个脚本将覆盖另一个脚本的结果。

相反,如果编写脚本是为了使用正确唯一的“临时”资源,则可以多次调用它:

#!/bin/bash

tmpfile=$(mktemp)

s=$(( RANDOM%5 ))
echo Sleeping for $s > $tmpfile
sleep $s
echo You entered $1 >> $tmpfile
cat $tmpfile
rm $tmpfile

现在您可以根据需要多次调用它,并且它会正常工作。

好吧...当然是考虑到内存和 CPU 的限制!

相关内容