2016-07-07 7 views
1

Ich habe ein Verzeichnis mit gezippten Datendateien. Ich möchte jede Datei mit dem Skript est_abundance.py ausführen. Aber zuerst muss ich sie entpacken. So habe ich diese bash:Schleife in Bash-Skript

for file in /home/doy.user/scratch1/Secoutput/; do 
    cd "$file" 
    gunzip *kren.gz 
    python analysis1.py -i /Secoutput/*kren -k gkd_output -o /bracken_output/$(basename *kren).txt 
    wait 
done 

Das Problem ist, hält der Bash-Skript alle der Datendateien auf dem Entpacken, es nicht auf den nächsten Befehl weiter nach einer Datei entpacken. Können Sie mir helfen, dies zu korrigieren? Ich möchte nur, dass jeder Befehl für jede Datei ausgeführt wird.

Antwort

0

Verwenden bemerken, dass Sie $file Variable verwendet werden soll, und Sie können den Namen der Datei nach dem Entpacken durch Abziehen des .gz Teil ${file%.gz} mit bekommen:

for file in /home/doy.user/scratch1/Secoutput/*; do 
    gunzip $file 
    python analysis1.py -i ${file%.gz} -k gkd_output -o /bracken_output/$(basename ${file%.gz}).txt 
    wait 
done