вы сейчас приближаетесь к уровню сложности, когда использование bash больше не имеет смысла, и вам следует подумать о портировании его на более подходящий язык сценариев, imo ... также вы не правильно выходите из строки $, что произойдет, если$ line содержит &foo=bar
?curl не будет интерпретировать его как часть dna_sequence
, curl подумает, что это совершенно новая переменная с именем foo
, содержащая bar
.. вот порт для PHP :
#!/usr/bin/env php
<?php
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://web.expasy.org/cgi-bin/translate/dna2aa.cgi',
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_ENCODING => ''
));
foreach (file('input.txt', FILE_SKIP_EMPTY_LINES) as $line) {
$line = trim($line);
if (!strlen($line) || $line[0] === '>') {
continue;
}
curl_setopt_array($ch, array(
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => http_build_query(array(
'dna_sequence' => $line,
'output_format' => 'fasta'
))
));
file_put_contents("my_{$line}.fasta", curl_exec($ch));
}
curl_close($ch);