Я хочу, чтобы скрипт оболочки обрабатывал много входных файлов.Я использую переменные для ввода имен и переименования промежуточных файлов.Я не могу перенаправить вывод в имя файла.
Сценарий оболочки запускается так:
./trim_pair_align_ab1.sh 116102 128861
Сценарий может корректно отображать переменные (строки 15 и 16), и они соответствуют ожиданиям.
./temp/45739_1_PET22-001_116102_00_trim.fastq
./temp/45739_1_PET22-001_116102_00_trim.fasta
Невозможно оценить имя файла, когда команда перенаправляет вывод
line 17: temp/$(echo $f|sed 's/_trim.fastq/_trim.fasta/'): No such file or directory
8 for f in *.fastq
9 do
10 seqtk trimfq -q 0.05 $f > ./temp/$(echo $f|sed 's/.fastq/_trim.fastq/')
11 done
12
13 for f in `eval ls ./temp/*$1*_trim.fastq`;
14 do
15 echo $f
16 echo $(echo $f|sed 's/_trim.fastq/_trim.fasta/')
17 seqtk seq -A $f > ./temp/$(echo $f|sed 's/_trim.fastq/_trim.fasta/')
18 done
Почему перенаправление вывода работает в строке 10, но не в строке 17?Что делает строку 17 буквальной, а не оцененной?