I wish I could give you some links. I bought the O'Reilly book many years ago and that's how I learned it, and still use the book as reference when I need it.
If you are just going to run some regular line commands, here's an example to get you started:
Say you have a file with a list of IP address, and want to telnet to each IP address and add a user named user1 and set the user's passwd to "newpassword".
You could pass the IP addresses to the script with a loop like the one I used as an example, or use an array, etc.. but say you use a loop like the example above as root, then your expect script would look like:
#!/usr/local/bin/expect -- # or wherever your expect executable is
spawn telnet [lindex $argv 0] # again, equal to $x in the example above
expect ogin: # tell expect to, well, expect the login prompt
send username\r # need to use \r as carriage return.
expect ssword:
send your_passwd\r
expect "your_prompt" # put it in quotation marks in case it has $ or > etc...
send "useradd -u10001 -g10 -s/usr/bin/ksh -d/export/home/user -m user1\r" # need quotes for commands with more than 1 word in them.
expect "your_prompt"
send "passwd user1\r"
expect ssword:
send newpasswd\r
expect ssword:
send newpasswd\r
expect "your_prompt"
send exit\
expect closed
exit 0
Personally, all of my boxes have ssh and keys, so I spawn ssh and have no need to include passwds.
Oh, and remember to use the last of the string that you tell expect to expect: if the line is "Enter new passwd:" , while it will run if you tell expect to expect "Enter", it'll run faster if you use the last of the string, as in "ssword:".
As with ksh, csh, perl, etc, there are many ways to accomplish the same task. The above is just a basic example that you can use as a guide if you only need to run simple commands. It gets a little more complicated when you expect either one string or another , when you use editing commands like sed or awk, when you pass variables to the commands you are executing within expect (as in send "echo $PATH", for example), and so on.