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 the interaction is simple, i.e. only reads from the standard input, you can just send the particular lines to the program's input:
( echo yes ; echo 1024; echo yes ) | install.sh
If you want to do anything that doesn't just read from stdin (e.g. ftp login) you'll want to use expect.