2016-07-07 3 views
1

У меня есть каталог, содержащий gzipped datafiles. Я хочу запустить каждый файл, используя скрипт est_abundance.py. Но сначала мне нужно разархивировать их. Так что у меня есть это Баш:Loop in bash script

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 

Проблема заключается в том, скрипт Баш продолжает расстегивать все файлы данных, не переходите к следующей команде после распаковки одного файла. Можете ли вы помочь мне исправить это? Я просто хочу, чтобы каждая команда выполнялась для каждого файла.

ответ

0

использования, обратите внимание, что вы должны использовать $file переменные, и вы можете получить имя файла после распаковки путем удаления .gz части с помощью ${file%.gz}:

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