考虑这样的脚本:
echo a
echo b
echo c
Run Code Online (Sandbox Code Playgroud)
它将产生 3 行,现在我可以像这样运行它:
abc_script | real_program
Run Code Online (Sandbox Code Playgroud)
real_program将输入这 3 个文件。但是,用户有一个问题abc_script,她/他必须记住将输出重定向到real_program.
那么如何将此重定向移动到脚本中呢?像这样的东西(脚本):
echo a | echo b | echo c | real_program
Run Code Online (Sandbox Code Playgroud)
这不起作用,这只是我想做的一个说明——隐藏real_program脚本内部的调用。
记录:在我的情况下,输入由一些文件和额外的行组成。所以我有:
cat $input_file
echo $extra_line
Run Code Online (Sandbox Code Playgroud)
不只是a,b,c。
小智 10
像这样:
( echo a
echo b
echo c ) | real_program
Run Code Online (Sandbox Code Playgroud)
它echo在子shell 中运行三个命令,并将子shell 的输出通过管道传送到脚本。
Subshell 是bash -c 'echo a; echo b; echo c' | real_program.