bash:如何_best_从另一个脚本创建脚本

时间:2010-02-07 21:29:43

标签: bash shell

从另一个脚本创建bash脚本的一般方法是什么。

例如:

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

我可以想到一些方法,比如简单地回显输出,但我想知道是否有更好的方法或命令我不知道,谷歌搜索不是很有帮助。

提前感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:3)

从第一个脚本输出的任何方式都有效,因此带有heredoc的echocat应该没问题:

cat << EOT
these will be
the lines of
the second script
EOT

答案 1 :(得分:1)

如果您不需要额外的文件

$ script1 arg1 arg2 | bash

或者,如果你想要一个文件

$ script1 arg1 arg2 | tee script2 | bash

答案 2 :(得分:1)

通常,当您有一个文件创建另一个文件时,您正在执行某种模板操作。虽然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脚本中的大多数操作。