且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Expect条件语句中使用Bash脚本变量

更新时间:2021-08-21 02:05:05

您不需要使用Bash. Expect可以处理所有这些事情:

You don't need to use Bash. Expect can handle all that:

#!/usr/bin/expect

set host [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]
set action [lindex $argv 3]
set path [lindex $argv 4]
puts "Starting...."

puts "\"$action\""
spawn sftp $user@$host

expect "password:"
send "$pass\r"

expect"sftp>"
send "cd $path\r"

if {$action == "TEST"} {
    # Do something
} else {
    # Do something else
}

expect "sftp>"
send_user "quit\r"

puts "DONE....."

来自Bash的Tcl/Expect语法有点奇怪,但是扩展上面的框架应该没有任何问题.

Coming from Bash, the Tcl/Expect syntax is a little strange, but you should not have any problem expanding the above skeleton.