交互式BashCourse:如何捕捉用户输入并对i作出反应

2024-05-18 15:20:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为我的女朋友(和其他人)写一个小游戏,这样她就可以用一个有趣的故事情节来学习基本的bash和linux命令。在

因为我不想让她在没有我手动检查她是否正确的情况下进行探索,所以我需要一种方法来捕捉她与命令行和输出的交互。在

现在我看到了两种方法,但我不知道它们是否有效:

  1. 使用python脚本作为解释器/登录shell,将命令传递到操作系统或子进程,并在该脚本中实现“游戏逻辑”。问题是:我不能教她像ctrl-z,ctrl-d等东西。

  2. 使用实际的bash作为解释器/登录shell,让的“game-logic”脚本在每个命令之前/之后运行(作为一种钩子)。在不深入研究bash代码本身的情况下,这是可能的吗?


Tags: 方法命令行命令脚本bash进程linux情况
1条回答
网友
1楼 · 发布于 2024-05-18 15:20:47

首先:

import signal, time
def signal_handler(signal, frame):
        print('You pressed Ctrl+<KEY>, ignoring!')
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTSTP, signal_handler)
while 1:
    time.sleep(1)

你的一个问题开始了。
其次,我看不出你想怎样“捕捉”她的互动。。但是我假设你无论如何都必须在场,那么为什么不让她有两个终端,让她尝试一下,而“游戏”在一个独立的控制台中运行,你只需输入y/n,这取决于她是否完成了正确的任务?在

或者,如果你真的想成为一个极客,为什么不建立一个虚拟的环境,让她做任何事情,并在失败时重置它。。给她5套指令,看看她能不能谷歌一下?她需要学习如何获取信息,而不是学习“如果我照他说的去做,我就会得到甜点”。在

有更好的“游戏”场景来实现一个学习曲线,然后让你跳进去纠正所有的东西,给她关键词来搜索,教她尝试一下谷歌搜索结果上看到的所有东西。。不会错的,毕竟不会。。只是一台电脑。。在

一个实例:

  1. qemu创建一个虚拟机(指南比它应该的要长,您只需要一小部分就可以开始了)
  2. 在上面安装一个基本的linux系统
  3. 拍摄快照

  4. 创建一个恢复到上一个快照并引导操作系统的脚本

  5. 给她(或他)一组指令,比如“1:installpython2.7,(keywords:archlinux python)”

我做这个是为了几个网络实验室,人们可以把他们想要的搞砸。。没关系,因为下一次他们重新启动(通过脚本)时,机器和新的一样好。你要做的唯一一件事,就是当她(或他)在你的教程中处于一个好位置时调用一个新的快照。在

相关问题 更多 >

    热门问题