Как записать результат выполнения исполняемого файла с помощью bash-скрипта и стандартного ввода? - PullRequest
0 голосов
/ 04 августа 2009

Я новичок в написании сценариев 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

Ответы [ 3 ]

2 голосов
/ 04 августа 2009

Дополнение к предложению Дэвида - передача вашей команды через tee . Это позволяет вывести выходные данные в файл и просмотреть его одновременно (полезно для интерактивных сценариев).

2 голосов
/ 04 августа 2009

Конечно, просто измените строку 3 на

./runnable input.aa >output <<EOF

> является оператором перенаправления вывода - он отправляет стандартный вывод в указанный файл.

Если вы также хотите зафиксировать стандартную ошибку (обычно сообщения об ошибках и т. Д.), Используйте

./runnable input.aa >output 2>errput <<EOF

вместо этого. Или вы можете получить их обоих в одном файле с

./runnable input.aa >alloutput 2>&1 <<EOF
1 голос
/ 04 августа 2009

, так как runnable ожидает ввода. Вы не можете использовать перенаправление вывода перед запуском здесь документов .

вам нужно будет сделать следующее, чтобы отправить вывод runnable в отдельный файл.

#!/bin/bash

OUTFILE=file3.txt
(
./runnable input.aa << EOF
2
4
3
4
3
3
2
EOF
) > $OUTFILE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...