⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interact.exp

📁 Vovida 社区开源的 SIP 协议源码
💻 EXP
字号:
#! /bin/sh# The next line is executed by /bin/sh, but not Tcl \      exec expect $0 ${1+"$@"}# ====================================================================# The Vovida Software License, Version 1.0 # # Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved.# # Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:# # 1. Redistributions of source code must retain the above copyright#    notice, this list of conditions and the following disclaimer.# # 2. Redistributions in binary form must reproduce the above copyright#    notice, this list of conditions and the following disclaimer in#    the documentation and/or other materials provided with the#    distribution.# # 3. The names "VOCAL", "Vovida Open Communication Application Library",#    and "Vovida Open Communication Application Library (VOCAL)" must#    not be used to endorse or promote products derived from this#    software without prior written permission. For written#    permission, please contact vocal\@vovida.org.# # 4. Products derived from this software may not be called "VOCAL", nor#    may "VOCAL" appear in their name, without prior written#    permission of Vovida Networks, Inc.# # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND# NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA# NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES# IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH# DAMAGE.# # ====================================================================# # This software consists of voluntary contributions made by Vovida# Networks, Inc. and many individuals on behalf of Vovida Networks,# Inc.  For more information on Vovida Networks, Inc., please see# <http://www.vovida.org/>.set argc [llength $argv]if { $argc < 5 } {    puts "usage: interact.exp <sec> <pwd> <host> <rootpf> <userpf> <command>\n"    exit 1}set uid     [exec whoami]set sec     [lindex $argv 0]set pwd     [lindex $argv 1]set host    [lindex $argv 2]set rootpf  [lindex $argv 3]set userpf  [lindex $argv 4]set command [lindex $argv 5]if { $host != "localhost" } {    # suppressing stdout printout    log_user 0    stty -echo    if { !([file exists "/tmp/$rootpf"] && [file exists "/tmp/$userpf"]) } {        # if passwd file does not exist get it and save it        if { ![file exists "/tmp/$rootpf"] } {            send_user "Enter root password: "            expect_user -re "(.*)\n"            send_user "\n"            set rootpasswd $expect_out(1,string)            set file [open "/tmp/$rootpf" "w"]            puts $file $rootpasswd            close $file        }        if { ![file exists "/tmp/$userpf"] } {            send_user "Enter user password or passphrase: "            expect_user -re "(.*)\n"            send_user "\n"            set userpasswd $expect_out(1,string)            set file [open "/tmp/$userpf" "w"]            puts $file $userpasswd            close $file        }    }    set file [open "/tmp/$rootpf" "r"]    set rootpasswd [read $file]    close $file    set file [open "/tmp/$userpf" "r"]    set userpasswd [read $file]    close $file    # starts with host and password    spawn ssh $host    set timeout 2    expect {        -re "^.*continue connecting \(\yes\/no\)\?.*$" {            send -- "yes\n"        }    }    set timeout 20     expect {        -re "^.*root.*password\:.*$" {            send -- "$rootpasswd"         }        -re "^.*$uid.*password\:.*$" {            send -- "$userpasswd"        }        -re "^.*passphrase.*$uid.*\:.*$" {            send -- "$userpasswd"        }    }    expect {        -exact "Last" {            send -- "cd $pwd\n"        }        -exact "Permission denied." {            puts "invalid password\n"            exit 1        }    }} else {    # starts with host and password    spawn tcsh     send -- "cd $pwd\n"}# compound commands sleep $secsend -- "$command\n"log_user 1set stty echointeract

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -