#!/usr/bin/expect set timeout 5 if {$argc < 1} { puts "usage: run.exp \[shell] \[user]" exit 1 } set shell [lindex $argv 0] if {$argc == 2} { spawn /usr/bin/chsh [lindex $argv 1] } else { spawn /usr/bin/chsh } expect "Password: " send "myuserF00barbaz\r" expect "Changing the login shell for myuser" expect "Enter the new value, or press ENTER for the default" expect -re "Login Shell .*\]: " send "$shell\r" expect "$shell\r\n" expect "chsh: $shell is an invalid shell\r\n" expect { eof { if ([string compare $expect_out(buffer) ""]) { set fp [open "tmp/out" w] puts $fp "$expect_out(buffer)" puts "\nFAIL" exit 1 } } default { puts "\nFAIL" exit 1 } } puts "\nPASS" exit 0