假设我有一个 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 的限制!