bash: как _best_ создать скрипт из другого скрипта - PullRequest
4 голосов
/ 08 февраля 2010

Что такое обобщенный способ создания сценария bash из другого сценария.

Например:

$./script1 arg1 arg2 > script2
$./script2
$arg1 arg2

Я могу придумать несколько способов, например, просто повторить вывод, но мне было интересно, есть ли лучший способ или команда, о которой я не знаю, и поиск в Google не очень помог.

Заранее спасибо за любую помощь.

Ответы [ 3 ]

3 голосов
/ 08 февраля 2010

Любой способ вывода из первого скрипта будет работать, поэтому echo или cat с heredoc должно быть в порядке:

cat << EOT
these will be
the lines of
the second script
EOT
1 голос
/ 08 февраля 2010

Как правило, когда у вас один файл создает другой, вы выполняете какие-то шаблоны. Хотя bash способен на это, вы можете рассмотреть другой инструмент. m4 - популярный инструмент, используемый в цепочке инструментов GNU. Для еще более простых шаблонов вы можете сделать что-то вроде следующего сценария Perl:

perl -pne BEGIN { open my $fh, $ENV{SERVER_PROPERTIES_FILE} or die $!; \
%hash = map { chomp; split /=/ } <$fh>; } s/\${(.*)}/$hash{$1} or die "missing $1"/eg' <     "${SERVER_XML_FILE}

Если вам не нужен второй файл, вы можете выполнить большинство задач в скрипте bash, используя здесь документы и встроенное выполнение.

1 голос
/ 08 февраля 2010

Если вам не нужен дополнительный файл

$ script1 arg1 arg2 | bash

или, если вы хотите файл

$ script1 arg1 arg2 | tee script2 | bash
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...