跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Linux 自动化大神看过来,求助啊
未分類
11 9 月 2020

Linux 自动化大神看过来,求助啊

Linux 自动化大神看过来,求助啊

資深大佬 : Number13 4

expect 使用方式求助

我想要判断执行程序的输出,是否有我指定的字符串怎么搞啊
比如
P1 程序执行后输出有 两种情况 情况 a:回显字符串中包含 aaaaa 情况 b: 回显字符串中包含 bbbbb
现在想判断 P1 程序执行后 如果是情况 a 就 执行 aCommandLine 情况 b 就 执行 bCommandLine
伪代码如下 :

if {expect “aaaa”} {
expect “aaaa” { send “aCommandLine”}
} else if { expect “bbbb”} {
expect “bbbb” { send “bCommandLine”}
}

大佬有話說 (12)

  • 資深大佬 : kaikai5601

    你把输出传到一个变量里面,然后在判断变量

  • 主 資深大佬 : Number13

    @kaikai5601 怎么将回显的字符串存到变量啊 大佬

  • 資深大佬 : yorks

    ret=`P1`
    或者
    ret=$(p1)

  • 資深大佬 : nuk

    出售《 TCL/TK 入门经典》

  • 資深大佬 : ungrown

    不如用 python
    subprocess 直接抓进程的 stdout stderr
    然后 if elif else

  • 資深大佬 : fcitx

    我很菜,但是我不明白为什么要 expect 放到 if 里面?
    难道不是:

    expect “aaaa” {
    send “aCommandLine”
    }
    expect “bbbb” {
    send “bCommandLine”
    }

  • 資深大佬 : sleepm

    参考 https://gist.github.com/prabirshrestha/3080525

  • 資深大佬 : ly4572615

    我完全没有用过 expect,直接到了 ansible 时代

  • 資深大佬 : wangyzj

    “`
    #!/bin/bash
    auto_login_ssh () {
    expect -c “set timeout 6;
    spawn -noecho scp -o StrictHostKeyChecking=no /home/appadmin/.ssh/id_rsa.pub [email protected]$3:/home/$2/.ssh/authorized_keys;
    expect *assword:*;
    send — $1r;
    expect *id_rsa.pub*;
    sleep 3;
    expect *denied*;
    exit;
    interact;”;
    }
    auto_login_ssh $1 $2 $3
    “`

    供参考

  • 主 資深大佬 : Number13

    @fcitx 或许你这个方法是对的,我最后也是采用这种方法

  • 主 資深大佬 : Number13

    感谢各位,结帖了,各位提供的是 shell + expect 我指的是 纯 expect 脚本(本人问题描述有问题) ,解决方法也是和 6L 的一样的方式,所以感谢各位大佬

  • 資深大佬 : lrvy

    之前用 expect 写过登陆堡垒机的脚本,可以参考下:

    #!/usr/bin/expect -f
    set timeout 30

    # 登陆堡垒机
    spawn ssh op

    # 选择 Group
    expect “group:”
    sleep .1
    send “1r”

    # 选择 Server
    expect “server:”
    sleep .1
    send “1r”

    # 提权
    expect “login:”
    sleep .1
    send “sudo -sr”
    sleep .1

    # ssh server
    send “ssh [lindex $argv 0]r”
    sleep .1
    interact

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具