2011-03-03 3 views
0

J'ai un programme que j'ai écrit en C++ et partagé l'exécutable avec un client. Le programme utilise essentiellement des bibliothèques de sécurité tierces pour générer un code donnant une valeur d'entrée. En tant que test, nous leur avons fourni une liste de 2 millions d'entrées. ils écrivent un script en unix qui ouvre le fichier en lisant les entrées et en chargeant l'exécutable à chaque fois avec le paramètre d'entrée.utilisation efficace d'un bin/exe

Ceci est une chose une seule fois, mais ils demandent s'il existe une autre manière efficace de le faire via un script. Juste curieux de savoir s'il y avait un moyen d'unix pour accélérer ce processus.

Voici le script Unix suivant qu'ils utilisent .... tout ce qui est inefficace qu'ils peuvent utiliser, ce qui le rendra plus rapide?

#!/usr/bin/ksh 
for input in `cat test_input.txt` 
do 
echo ${input} `my_script${input}` 
done 
# The End 

Répondre

1

Ce n'est pas un script shell unix, mais un langage de script comme Python fonctionne aussi pour ce genre de chose (et il est sur les ordinateurs la plupart unix par défaut).

#!/usr/bin/python 
import subprocess 

with open('inputfile.txt', 'r') as f: 
    for line in f.readlines(): 
     retcode = subprocess.call(['execname', line]) 
     print retcode 

Vous pouvez également l'avoir en sortie de canalisation et/ou stderr si vous le souhaitez.

+0

pouvez-vous jeter un oeil au script que j'ai et voir s'il y a un moyen de le rendre plus efficace? comme est-il des opérations comme le chat qui le fait être lent? –

+0

Pas que je sache. Vous pouvez probablement le rendre plus rapide en le faisant générer un processus par cœur en continu, mais ce n'est pas aussi facile à faire (et cela ne vaut le coup que si le programme que votre fraie va prendre un certain temps, et ne vaut probablement pas le coup programme unique). –

Questions connexes