登录 立即注册

首页 > 绿虎论坛 > 电脑 > Linux/Unix (发帖)

标题: linux 中 expect 如何使用正则修饰符

作者: @Ta

时间: 2022-07-10发布,2022-07-10修改

点击: 12521

我正在写一个自动登录远程 ssh 的脚本

以下为 test.exp 内容

#!/usr/bin/expect

set username root
set password root
set host 192.168.123.6
set port 22
spawn ssh $username@$host -p $port
expect {
        -re {([Pp]password} { send "$password\r"}
}

注意 -re {([Pp]password} { send "$password\r"}
我想使用修饰符 i 而非 [Pp] 来使其不区分大小写,但是我不知道怎么添加

我在百度,Stack Overflow中都找不到例子

小米MIX2s(白)

[隐藏样式|查看源码]


『回复列表(9|显示机器人聊天)』

1.

@老虎会游泳
已经尝试使用(?i)(password),没用
小米MIX2s(白)

(/@Ta/2022-07-10 01:08//)

2.

查阅官网文档后,已解决,使用 -nocase 参数(没有使用修饰符,在官网中大致看了一下,没有找到修饰符相关内容,或许不支持)
-nocase -re {(password} { send "$password\r"}

官网对应文档如下
The -nocase flag causes uppercase characters of the output to compare as if they were lowercase characters. The pattern is not affected.
小米MIX2s(白)

(/@Ta/2022-07-10 02:01//)

4.

@加勒比海带,不认识。。

简单搜了搜,命令行界的按键精灵??

(/@Ta/2022-07-10 19:36//)

5.

@加勒比海带,expect 一个 linux 的工具
小米MIX2s(白)

(/@Ta/2022-07-11 18:37//)

6.

@天蓝,为嘛不搞 ssh key 免密登录呢

(/@Ta/2022-07-11 19:49//)

7.

@无名啊,因为我想通过写这个脚本学习,另一方面还要通用
小米MIX2s(白)

(/@Ta/2022-07-11 21:12//)

8.

@天蓝,学习啥?expect?

我经历场景不多,想大概请教一下

  • 这个工具使用场景主要是啥?
  • 解决了shell的啥痛点么?
(/@Ta/2022-07-11 21:20//)

9.

这个主要是交互吧@无名啊
反正我使用场景,就是远程登录 SSH 获取一些信息
小米MIX2s(白)

(/@Ta/2022-07-12 22:58//)

10.

@天蓝,换作我,命令行下,如果shell能通吃,就懒得再学门语言了

(windows 上都懒得学 cmd powershell,前者简陋,后者稍显繁冗?)

这个场景,感觉可以 ssh key 免密登录,执行命令后返回(除非要频繁批量登录新主机?)

我的认知里,命令行多用于脚本执行(使用文件或标准输入输出),面向用户就客户端或网页端

所以这类模拟交互的,我就不懂使用场景了

(/@Ta/2022-07-12 23:29//)

回复需要登录

11月27日 05:16 星期三

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1