我在一个目录中有大约 500 个奇怪的数据文件。我正在使用命令处理这些文件。问题是它会连续提取每个,当然,任何实用程序都会如此。目前,我的进程所做的是产生大约 500 个进程,将它们错开成 10 个批次,每个批次都穿插着等待。像这样 。每个此设计 1 个文件 == 1 个进程。
command1 <parameters> > log 2&>1&
command2 <parameters> > log 2&>1&
command3 <parameters> > log 2&>1&
command4 <parameters> > log 2&>1& /# ....till 10
wait
command11 <parameters> > log 2&>1&
command1 <parameters> > log 2&>1&
command1 <parameters> > log 2&>1& /# ...till 20
wait
command1 <parameters> > log 2&>1&
所以我不会同时破坏系统。该命令实际上是另一系列的 shell 和 c 代码,用于解析数据文件并进行一些检查,其中涉及连接到 Oracle。我想重新设计它,以便每次运行命令时都不会打开新的数据库连接。所以假设有 100 个文件。我只想打开 10 个数据库连接,而不是 100 个单独的连接。我想做的方式是首先计算我有多少文件。将它们除以 10。每个除法是 10 个文件的“批次”——所以不是 100,而是 150 个文件,该过程应该自动创建 15 个目录。每个目录应该在其中移动 10 个文件,然后我可以运行
command1 <parameters> Directorypath > log 2&>1&
/# command can pick up all files in a directory or a single file
/# ct till command 10 ...
....
command10 <parameters> Directorypath > log 2&>1&
此设计有 10 个文件 == 1 个进程。
任何关于如何做到这一点的建议都可以通过命令进行。泰