Вы проверили свой скрипт на Perl? Для того, чтобы иметь этот сценарий Perl дать вам то, чтобы поместить в сценарий оболочки, вы убедитесь, что ваш сценарий Perl работает:
$ test.pl
Нет вывода на всех.
В первую очередь вы помещаете весь скрипт Perl в sub
. Подпрограммы в Perl не выполняются, если вы их не назовете. Вы даже не можете этого сделать, поскольку ваша подпрограмма даже не имеет имени. Давайте избавиться от подпрограммы:
my $sequence="SEQUENCE1";
my $sequence2="SEQUENCE2";
my @Array = ($sequence, $sequence2);
print \@Array . "\n";
Хорошо, теперь давайте попробуем программу:
$ test.pl
ARRAY(0x7f8bab8303e0)
Вы распечатывания ссылку на массив с этой \
в передней части @Array
.Давайте распечатать сам массив:
my $sequence="SEQUENCE1";
my $sequence2="SEQUENCE2";
my @Array = ($sequence, $sequence2);
print @Array, "\n";
Что теперь будет печатать @Array
:
$ test.pl
SEQUENCE1SEQUENCE2
не совсем. Между каждым элементом нет пробелов. Зададим $,
который является выходной разделитель полей быть единым пространством:
my $sequence="SEQUENCE1";
my $sequence2="SEQUENCE2";
my @Array = ($sequence, $sequence2);
$,=' ';
print @Array, "\n";
Сейчас:
$ test.pl
SEQUENCE1 SEQUENCE2
Теперь мы имеем программу, работающую на Perl, который выдает то, что нам нужно поместить в ваш массив раковин:
seq=($(test.pl))
echo ${seq[*]}
SEQUENCE1 SEQUENCE2
Если у вас есть проблема, вам нужно разбить ее на кусочки. Ваша первая проблема заключается в том, что ваш скрипт Perl не работал. Как только это исправлено, вы можете использовать его для инициализации своего массива в своей оболочке Bash.
* «Это не работает» * на самом деле ничего не значит для нас; если вы можете детализировать, может быть, мы сможем помочь лучше :) – m0skit0
@ikegami Я не уменьшал или не закрывал голос anyawy – m0skit0
В этом случае это означает «Я не знаю, как это сделать». В этом ответе нет ничего, что гарантирует его закрытие. [oops, re-posting случайно удаленный комментарий] – ikegami