У меня есть текстовый файл с определенными инструкциями по установке, и я знаю, что могу найти уникальный случай в файле. Например, текстовый файл имеет что-то вроде:
MYDIR = `find / home / user -name somedir` экспорт PERL5LIB = $ PERL5LIB: $ MYDIR
В bash, как я могу выполнить строки после grep в файле? Что-то типа:
выполнить результат из "grep somedir INSTALLFILE" выполнить результат из "grep" export PERL5LIB 'INSTALLFILE "
Ответы:
Предположения:
Вы можете перенаправить ваши команды во временный файл и выполнить это:
Или вы можете оценить результаты
Обновление старого ответа. Сегодня я бы использовал замену процесса:
источник
source <(...)
, вам нужен Bash 4 или выше. Это не работало со старыми версиями (хотя zsh был в порядке).Чтобы оценить строки в отдельном процессе оболочки:
Чтобы оценить строки в запущенном процессе оболочки:
источник
-A 1
или в-B 1
качестве флагов на одном или другом из вашихgrep
s, чтобы получить обе строки одним grep и использовать это в любом из решений @Gilles.sh
может быть символическая ссылка на другую оболочку вместо той, которую вы ожидали, поэтому результаты могут быть непредсказуемыми. Чтобы обезопасить себя , конкретные точные оболочки вы ожидаете, напримерgrep somedir INSTALLFILE | bash
Рассматривали ли вы возможность использования функции exec в find как в:
источник