Используйте подстановку процесса <()
:
fgrep -A 1 -f <(cut -d " " -f 1 Cell_cycle.txt) filename.fasta
Вы можете использовать команду SOURCE для запуска другого скрипта Bash в той же среде, от которого вы получили. (Без запуска подпроцесса)
Script1.sh
#!/bin/bash
read -p "Enter Your Full Name: " Name
source script2.sh
Script2.sh
#!/bin/bash
echo $Name
-
Причина, по которой ваш пример не работает, является из-за Sudo. Вы можете использовать опцию sudo -e, чтобы сохранить переменные окружающей среды с помощью супер пользовательской среды.
Script1.sh
#!/bin/bash
read -p "Enter Your Full Name: " Name
export Name
sudo -E bash script2.sh
Script2.sh
#!/bin/bash
echo $Name
-121--111622- Также это (для слегка более коротких и более читаемости):
grep -Ff <(awk '{print $1}' Cell_cycle.txt) filename.fasta