我是编写bash脚本的新手(并不是很好)。因此,如果我能对我的问题得到一些解释性的帮助,那就太好了。
以下是我编写的bash脚本,它为./runnable(可执行文件)提供标准输入,其中包含input.aa作为参数。我想在另一个文件中输出这个./runnable input.aa的输出,比如输出。有关如何重新构建代码的任何建议?如果我的脚本有任何问题,请提出建议。
#!/bin/bash
./runnable input.aa <<EOF
>2 #input I want runnable to take
>15
>7
>12
>16
>92
>18
EOF
答案 0 :(得分:2)
当然,只需将第3行更改为
./runnable input.aa >output <<EOF
>
是输出重定向运算符 - 它将标准输出发送到指定文件。
如果您还想捕获标准错误(通常是错误消息等),请使用
./runnable input.aa >output 2>errput <<EOF
代替。或者你可以使用
将它们混合在同一个文件中./runnable input.aa >alloutput 2>&1 <<EOF
答案 1 :(得分:2)
David suggestion的补充是通过tee管理您的命令。这允许您将输出转储到文件和同时查看它(对交互式方案很有用)。
答案 2 :(得分:1)
因为runnable期待输入。在开始here documents之前,您无法使用输出重定向。
您必须执行以下操作才能将runnable的输出发送到单独的文件。
#!/bin/bash
OUTFILE=file3.txt
(
./runnable input.aa << EOF
2
4
3
4
3
3
2
EOF
) > $OUTFILE