I am trying to automate the installation of a program through a shell script. There are a few steps which require user interaction from the command line (confirmation, yes/no, etc.). What is the best way to by-pass it? I know that one possibility is to use an expect script. Just wanted to know if there is a better/cleaner way to do this.
If you want to do anything that doesn't just read from stdin (e.g. ftp login) you'll want to use expect.
From another thread:
If your command doesn't care how fast you give it input, and you don't really need to interact with it, then you can use a heredoc.
#!/bin/bash command_you_want_to_execute <<EOD interaction_1 intereaction_2 EOD
If you need branching based on the output of the program, or if your program is at all sensitive to the timing of your commands, then Expect is what you want.