J'essaie d'exécuter un script Python (qTrimHIV.py) sur TOUS les fichiers se terminant par .fastq dans le répertoire courant. Je voudrais ajouter nohup
au début afin qu'il fasse tous les fichiers à partir d'une seule commande, et peu importe si je ferme le terminal ou la déconnexion.nohup pour une commande par lots utilisant "for x in find"
La commande individuelle:
for x in $(find . -name '*fastq'); do echo $x; python ../qTrimHIV.py -verbose -fastq $x -l 23 -m 20 -w 23 -o ${x%.fastq*}tr -mode 2; done
fonctionne bien. Mais quand je mets nohup devant la commande batch:
nohup for x in $(find . -name '*fastq') ; do echo $x; python ../qTrimHIV.py -verbose -fastq $x -l 23 -m 20 -w 23 -o ${x%.fastq*}tr -mode 2; done
-bash: syntax error near unexpected token `do'
Je reçois l'erreur ci-dessus.
Cependant, cela fonctionne bien si je mets le nohup avant la commande actuelle "python ../qTrimHIV.py", mais ce n'est pas vraiment ce que je veux, car je veux soumettre la tâche pour tous les fichiers à la fois et faites-le en cours d'exécution jusqu'à ce qu'il soit fait, sans avoir à garder connecté.
J'ai essayé
for x in $(find . -name '*fastq') ; do echo $x; python ../qTrimHIV.py -verbose -fastq $x -l 23 -m 20 -w 23 -o ${x%.fastq*}qtrim -mode 2; done | at now
mais il ne me permet pas de voir les progrès du travail, et je ne peux pas savoir si il est toujours en cours d'exécution ou non.
Quelqu'un peut-il me donner des suggestions? Dois-je utiliser une commande différente, autre que nohup
?
Merci, Icare :) Je ne suis pas familier avec les scripts shell d'écriture, mais je devrait y arriver. –