STDIN и STDOUT объединяются в одно - PullRequest
0 голосов
/ 25 октября 2018

Как записать и прочитать одновременно вывод stdin?Можно ли это сделать?Так что, когда вы пишете что-то, оно в то же время должно показывать ваш ввод.

Я нашел и пример, который использует stdin и stdout и pipe, но я не знаю, как использовать это в моем случае

<input-file.txt commandA | commandB >output-file.txt

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Если я вас понимаю ...

cat < a > b

Это перенаправление ввода от a и перенаправление вывода на b.Это то, что вы хотели?

Попробуйте это.

cat

Он будет сидеть и ждать вас, потому что по умолчанию терминал STDIN.

Введите что-нибудь и нажмите- он плюет на вас, потому что по умолчанию STDOUT идет на консоль.Это будет продолжаться до тех пор, пока вы не передадите ему EOF-символ или не нарушите программу другим способом, например CTRL-C.

Если вам требуется труба,

cat | cat

будет (бессмысленно) делать то же самое.

Объединить их для безвозмездного использования как труб, так и перенаправлений -

cat < a | cat > b

Можете ли вы дать более четкие требования?

0 голосов
/ 25 октября 2018

Что-то вроде этого должно работать:

 #!/bin/bash

 echo Enter your answer:
 read variable
 echo ${variable}

Он запросит у вас значение, вы введете его и выдаст его, как только вы нажмете Enter.

Обновление

Это также будет работать как одна команда:

read variable && echo ${variable}
...