【发布时间】:2018-10-01 17:12:06
【问题描述】:
我还很陌生;但是,我有一个当前需要修改的期望脚本,我很难过。
这就是我想要做的,
主机主机名 | awk '{打印 $3}' | awk -v FS='.' '{打印 $4}' | tr -d ','
如果结果是特定数字(IP 地址的第 4 个八位字节),则将变量分配给要在脚本中使用的特定值。如果是不同的值,则为其分配不同的变量值。
关于我正在尝试对脚本执行的操作的更多详细信息: - 我有 2 个不同的环境(都以特定的第 4 个八位字节结尾) - scp 一个文件到远程服务器(每个环境都有不同的文件) - 连接到系统(每个环境的登录提示也不同,因此为每个环境传递不同的值)
* 抱歉,如果这令人困惑 *
这是我目前所拥有的(是的,我改变了一些价值观以保护我的环境)。
spawn host hostname | awk {print \$3} | awk -v FS=. {print \$4} | tr -d ,
expect -exact 15 {
set PSWPROMPT password:
set REXPECT remotescript.exp
} -exact 10 {
set PSWPROMPT Password:
set REXPECT remotescript.exp_rh
}
send_user $PSWPROMPT $REXPECT
expect "$"
spawn scp -p filename user@hostname:PATH_FILENAME*
expect -exact "connecting (yes/no)?" {
send "yes\r"
expect -exact $PSWPROMPT
send "filename\r"
} -exact $PSWPROMPT {
send "filename\r"
}
expect "$"
spawn scp -p filename user@hostname:PATH_FILENAME
expect -exact "connecting (yes/no)?" {
send "yes\r"
expect -exact $PSWPROMPT
send "password\r"
} -exact $PSWPROMPT {
send "password\r"
}
expect "$"
spawn scp -p $REXPECT *username*@$hostname:PATH_FILENAME*
expect -exact "connecting (yes/no)?" {
send "yes\r"
expect -exact $PSWPROMPT
send "password\r"
} -exact $PSWPROMPT {
send "password\r"
}
expect "$"
【问题讨论】:
标签: shell scripting redhat expect aix