python - 如何防止在 python 退出时在 bash 中执行按键

标签 python linux bash keyboard

我正在使用 keyboard 包来捕获 python 程序中的按键事件。使用以下内容获取这个简单的脚本:

import keyboard

while True:
    try:
        if keyboard.is_pressed('ESC'):
            break
        else:
            pass
    except:
        break

当我在终端中运行此脚本时,它的行为符合预期,直到程序关闭,此时我键入的所有内容都作为 shell 命令输入到 bash 终端。这可能很危险,因为输入的每一行都有可能产生不利的系统影响。

对此有任何建议的解决方法吗?首选纯 python 解决方案,但 bash 中的脚本初始化参数是合适的。

最佳答案

如果您在 linux 上运行,您可以使用 exec 来运行您的程序。使用 exec 使程序接管终端。这样当程序完成时,就不会再向终端写入任何内容。

如果您使用的是 windows 或者只是想要一个纯 python 答案,您可以使用下面的代码来做同样的事情并退出程序。

import os, signal
os.kill(os.getppid(), signal.SIGHUP)

关于python - 如何防止在 python 退出时在 bash 中执行按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57245280/

相关文章:

java - SocketChannel.write(buffer) 阻塞并且写入零字节

bash - 从 bash 中的管道读取时“读取”不会超时

linux - Ping on bash 脚本,ping 如果失败则退出脚本

python - 帮助解释Python代码片段

python - 如何对许多对象使用 bulk_create() 来执行 save() 操作

python - 如何使用python从xml文件中获取值

c - Sqlite3如何识别表锁定状态然后插入

python - 将返回的元组分配给数组的不同列

linux - 要内置到 Linux 共享库中的信息

bash - 在新的后台 tmux 窗口中运行命令并等待进程完成