Bash не находит файл - PullRequest
       32

Bash не находит файл

0 голосов
/ 26 мая 2019

Я запускаю Debian 9 в качестве виртуальной машины с последовательной консоли в Azure.

Ссылка на образец входного файла: https://drive.google.com/open?id=1aIIjWO70clU8u4_gV2X_8c17HmEnqjr_

Мне дали код помощи людям из antiSMASH. Он должен перебирать файлы genbank в папке и обрабатывать их с помощью пакета antiSMASH:

for infile in inputs/*.gbk; do
    antismash $infile --taxon fungi --input-type nucl --knownclusterblast
done

Я попытался запустить его, находясь в каталоге, содержащем файлы, и попытался запустить его, находясь в каталоге, содержащем папку «input», в которой содержатся файлы .gb:

(antismash) macpat@Debian9:~/inputs$ for infile in inputs/*.gb; do
> antismash $infile --taxon fungi --input-type nucl --knownclusterblast
> done
ERROR   25/05 21:53:00   No sequence file found at 'inputs/*.gb'

Я запустил это:

(antismash) macpat@Debian9:~$ for infile in ~/inputs/*.gb; do echo $infile; done
/home/macpat/inputs/DQ660910.gb
/home/macpat/inputs/EU872212.gb
/home/macpat/inputs/GU930713.gb
/home/macpat/inputs/GU930714.gb
/home/macpat/inputs/HM180407.gb
/home/macpat/inputs/HM180409.gb
/home/macpat/inputs/HQ823618.gb
/home/macpat/inputs/HQ823619.gb
/home/macpat/inputs/HQ823620.gb
/home/macpat/inputs/HQ823621.gb
/home/macpat/inputs/JN408682.gb
/home/macpat/inputs/JQ340775.gb
/home/macpat/inputs/JX067626.gb
/home/macpat/inputs/JX067627.gb
/home/macpat/inputs/JX232185.gb
/home/macpat/inputs/JX232186.gb
/home/macpat/inputs/JX232187.gb
/home/macpat/inputs/JX232188.gb
/home/macpat/inputs/KJ501919.gb
/home/macpat/inputs/MG777489.gb
/home/macpat/inputs/MG777490.gb
/home/macpat/inputs/MG777491.gb
/home/macpat/inputs/MG777492.gb
/home/macpat/inputs/MG777493.gb
/home/macpat/inputs/MG777494.gb
/home/macpat/inputs/MG777495.gb
/home/macpat/inputs/MG777496.gb
/home/macpat/inputs/MG777497.gb
/home/macpat/inputs/MG777498.gb
/home/macpat/inputs/MG777499.gb
/home/macpat/inputs/MG777500.gb
/home/macpat/inputs/MG777501.gb
/home/macpat/inputs/MG777502.gb

Это письмо, которое мне прислали сотрудники antiSMASH:

Уважаемый пользователь antiSMASH,

Для запуска antiSMASH на многих входных файлах я обычно пишу цикл в Баш, вот так:

for infile in inputs/*.gbk; do
    antismash $infile --your --other-options --here done

Предполагается, что ваши входные файлы в формате GenBank и расположены в подкаталог вашей текущей директории под названием «вход», antiSMASH будет запустить на всех ваших входных файлов последовательно. Я знаю, что вы просили "все сразу ", но как антиСМАШ имеет довольно приличный процессор и память требования, особенно при запуске ClusterBlast, я бы не стал рекомендую.

С уважением, Кай

Ответы [ 2 ]

1 голос
/ 26 мая 2019

В неудачном случае вы написали inputs/*.gb.В рабочем с эхо вы написали ~/inputs/*.gb.

0 голосов
/ 26 мая 2019

inputs/ - это относительный путь, который означает, что вы должны находиться в его родительском каталоге, /home/macpat, чтобы он работал.Чтобы перейти к /home/macpat, вы можете запустить cd.

cd
for infile in inputs/*.gb; do ...

С другой стороны, ~/inputs/ - это абсолютный путь, что означает, что он будет работать из любого места.

for infile in ~/inputs/*.gb; do ...

Или, если вы хотите запустить скрипт из ~/inputs/, вы можете запустить это:

cd ~/inputs
for infile in *.gb; do ...
...