1

I am having a C program which requires to read from stdin. This is one of the requirements, and it cannot change.

I have written a simple bash script that creates all the directories I want, handles the output etc. and also compiles and runs my program.

When I run my program it waits for the user to give an input from the stdin :

I want to be able to give that input from the bash - so do not let the user give the input (there is a reason for that). So ideally, I want somehow the input to be visible to the user but given from the script.

If I write something like this :

./task2 cat <<< "my input here" 

It runs the task, and the cat command runs when the task has finished. I want somehow to enforce that cat whenever the program requires input from the user.

Is it possible?

2

1 Answer 1

1

If I understood you correctly, you can use tee for this purpose. In the Bash script, let's assume the following line runs your compiled C program:

./my_program 

Replace that with:

printf "%s\n" "my input here" | tee /dev/tty | ./my_program 

This will print my input here to your terminal device and pipe it to ./my_program on its stdin so it can read it.

2
  • Thanks, this one worked. But What if I want the input to be also printed out on terminal?CommentedJun 29, 2014 at 13:35
  • @ghostrider Sorry, I thought the tee I had written would do that. Please see the update.
    – Joseph R.
    CommentedJun 29, 2014 at 14:58

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.