从另一个脚本创建bash脚本的一般方法是什么。
例如:
$./script1 arg1 arg2 > script2
$./script2
$arg1 arg2
我可以想到一些方法,比如简单地回显输出,但我想知道是否有更好的方法或命令我不知道,谷歌搜索不是很有帮助。
提前感谢您提供任何帮助。
答案 0 :(得分:3)
从第一个脚本输出的任何方式都有效,因此带有heredoc的echo
或cat
应该没问题:
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脚本中的大多数操作。