[РЕДАКТИРОВАТЬ] Я думаю, что я понимаю ваш вопрос сейчас, пожалуйста, поправьте меня, если я ошибаюсь.
Давайте начнем с самого простого возможного примера, который имеет такое же количество различных командных строк, что и ваш пример.Представьте, что у вас есть три программы: «somatic», «samtools1» и «samtools2».Соматика принимает два аргумента, а samtools1 и samtools2 не принимают ни одного.
Давайте представим далее, что при запуске samtools1 в результате получается одно слово «output1».И аналогично, давайте представим, что когда samtools2 запущен, он выдает одно слово «output2».Затем вы хотели бы запустить команду
somatic output1 output2
в качестве командной строки.
Способ достижения этого -
somatic `samtools1` `samtools2`
Перенаправление не включено.
Или более подробно, используя ваш оригинальный пример, что-то вроде
java -jar VarScan.v2.2.jar somatic `samtools view -b -u -q 1 $n_b | samtools pileup -f $r -` `samtools view -b -u -q 1 $t_b | samtools pileup -f $r - output`
Хотя между `и | может быть некоторое взаимодействиеэто требует некоторых скобок или цитирования.На самом деле я не пытался запустить это.
[Старый материал оставлен для одитинга]
Ваш вопрос мне не совсем понятен: вы ясно думаете, хотите ли вы перенаправить выводили сформулировать командную строку?Я подозреваю, что вы имеете в виду последнее, так как вы говорите о двух параметрах, и есть только один стандартный ввод.
Если вы хотите сформулировать параметр командной строки из выходных данных команды, синтаксис bash для использования будетобратные кавычки '`'
Например, чтобы запустить команду 'mycommand', которая ожидает дату в качестве своей командной строки argumemt, вы можете использовать
mycommand `date`
, которая будет запускать команду даты, ииспользуйте вывод команды в качестве первого аргумента mycommand.