我真的在努力重做bash for循环并行运行。
循环是这样的:
for i in `cat names`
do
cp $i.pqr dum.pqr
apbs parameters.in
mv dum.grd $i.grd
rm dum.grd
done
我没试这么成功。它告诉我'需要-c的参数'
for i in `cat names`
do
cp $i.pqr dum.pqr
parallel -j8 apbs parameters.in
mv dum.grd $i.grd
rm dum.grd
done
任何人都可以告诉我我的错误吗?
答案 0 :(得分:0)
我假设apbs采用'dum.pqr'并将其变成'dum.grd'。因此,如果2个apbs同时运行,它们将覆盖dum.grd。你需要确保名称是唯一的。也许使用dirs:
func my_apbs {
mkdir $1
cp $1.pqr $1/dum.pqr
cd $1
apbs parameters.in
mv dum.grd ../$1.grd
cd ..
rm -r $1
}
export -f my_apbs
parallel my_apbs :::: names
您没有写过是否观看了介绍视频https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1或浏览了教程:http://www.gnu.org/software/parallel/parallel_tutorial.html