Linux - enchainer les executables
Bonjour à tous et bonne année 2018 !!!
Je me permets d'ouvrir un topic car je n'ai malheuresement pas trouvé la réponse à ma question dans le forum :(
Je suis sous linux et j'écris un script python me permettant de lancer automatiquement les sous-routines que j'ai concernant du milieu poreux.
Mon problème c'est que je lance la dernière qui attend 4 arguments dans mon terminal :
1 pour le mode de traitement
0 le numéro du premier fichier à traiter
62 le numéro du dernier fichier à traiter
1 le pas pour traiter tous les fichiers
J'aimerai automatiser ceci sachant que je n'ai accès qu'à l'éxécutable et ne peut pas le modifier.
J'ai essayé plusieurs méthodes ( relier les commandes avec ; || ou &&) mais rien n'y fait, l'éxécutable bloque et attend ces arguments.
Voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| while i<len(angles):
os.system('mkdir AVALANCHE_'+str(angles[i]))
os.system('cd AVALANCHE_'+str(angles[i]))
os.chdir('/work/granulaire_2/GRADYM_POUR_ETUDIANTS/CALCULS/AVALANCHE_'+str(angles[i]))
os.system("cp ../INITIALISATION_LIT/gradym.x .")
os.system("cp ../INITIALISATION_LIT/final.bin .")
os.system("cp ../INITIALISATION_LIT/sphe.reli.forceBin.bin .")
os.system("cp ../INITIALISATION_LIT/sphe.reli.forceMur.bin .")
os.system("cp final.bin in_sim.bin")
os.system("cp ../../POST_PROCESSING/POST_VISU/post_visu.x .")
os.system("cp ../../POST_PROCESSING/POST_MATLAB/lecture_position_vitesse_dat.m .")
fichier=open('sphe.dem','w')
fichier.write(debut)
fichier.write(str(round(sin_angle[i],4))+" "+str(round(-cos_angle[i],4))+" 0. 0")
fichier.write("\n")
fichier.write(fin)
fichier.close()
os.system('./gradym.x')
os.system('./post_visu.x && 1 && 0 && 62 && 1') #ligne qui pose probleme car non automatisée
os.system("cd ..")
os.chdir('/work/granulaire_2/GRADYM_POUR_ETUDIANTS/CALCULS')
i=i+1 |
Je vous souhaite une bonne journée !
Merci d'avance !