syy0422 2015-02-28 09:25 采纳率: 0%
浏览 1272

expect怎么控制键盘下键头

使用expect做命令交互,需要模拟键盘下箭头操作,查到键盘码 ASCII码为:方向键(↓): VK_DOWN (40),
但是使用send "/40"或"0x28"都无效

回车键ASCII码: VK_RETURN (13)
使用send "/13"无效
使用send "/r" 有效

ASCII码有误吗??还有怎么回事。

求解。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 10:42
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Linux中,expect命令可以用来执行命令的交互式会话。为了模拟键盘输入,你可以使用send函数来发送特定的字符序列。这里是一个简单的例子:

    #!/bin/bash
    
    # 定义一个函数,用于模拟向下箭头(方向键)的输入
    simulate_down_arrow() {
        expect -c '
            spawn "echo -ne "\x1b[3A\x1b[5A" && echo -n "$*" && echo -ne "\x1b[2K"
        ' || exit $?
    }
    
    # 定义一个函数,用于模拟回车键的输入
    simulate_return_key() {
        expect -c '
            spawn "echo -ne "\x1b[10K" && echo -n "$*" && echo -ne "\x1b[A"
        ' || exit $?
    }
    
    # 模拟向下箭头和回车键的输入
    simulate_keys() {
        simulate_down_arrow
        simulate_return_key
    }
    
    # 调用模拟按键函数
    simulate_keys
    

    这个脚本定义了两个函数simulate_down_arrowsimulate_return_key,它们分别模拟向下箭头(方向键)和回车键的输入。然后调用了这两个函数来进行模拟。

    注意,这个脚本只是一个基本的例子,实际使用时可能需要根据你的需求进行修改。例如,你可能想要添加更多的模拟按键功能,或者改变按键的速度等。

    评论

报告相同问题?