You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建带$ myApp>提示符的命令行应用及配置运行后效果

嘿,我来帮你搞定这个带自定义提示符的交互式命令行应用!其实不管你用什么语言,核心思路都是持续监听用户输入+自定义提示符输出,我给你用Python和Node.js举两个最常用的例子,你可以参考:

方案1:Python 用内置cmd模块(快速搭建)

如果你用Python,cmd模块简直是为这种场景量身定做的,不用自己写循环,直接继承类就能搞定:

import cmd

class MyInteractiveApp(cmd.Cmd):
    # 直接设置你想要的提示符样式
    prompt = '$ myApp> '

    # 定义hello命令,输入hello就会触发这个方法
    def do_hello(self, args):
        if args:
            print(f"👋 你好, {args}!")
        else:
            print("👋 你好呀!")

    # 定义exit命令,返回True就会退出程序
    def do_exit(self, args):
        print("👋 再见啦!")
        return True

    # 自定义help提示(可选,默认有自带的help)
    def do_help(self, args):
        print("可用命令:")
        print("  hello [名字] - 打招呼")
        print("  exit - 退出应用")

if __name__ == '__main__':
    MyInteractiveApp().cmdloop()

运行后你就能看到$ myApp>的提示符,输入hello 张三或者exit都能正常响应,是不是很简单?

方案2:Python 用readline手动实现(更灵活)

如果需要更定制化的逻辑(比如实时输入处理、自定义补全),可以用readline配合循环手动实现,自由度更高:

import readline

def run_my_app():
    prompt = '$ myApp> '
    # 开启命令历史记录,用户可以按上下箭头查看之前的输入
    readline.set_history_length(50)

    while True:
        try:
            # 获取用户输入,自动带上提示符
            user_input = input(prompt).strip()
            if not user_input:
                continue  # 空输入直接跳过,重新显示提示符

            # 处理各种命令
            if user_input == 'exit':
                print("👋 再见!")
                break
            elif user_input.startswith('hello'):
                # 提取名字参数
                name = user_input.split(maxsplit=1)[1] if ' ' in user_input else '朋友'
                print(f"👋 你好, {name}!")
            else:
                print(f"❓ 未知命令:{user_input},输入help查看可用命令")
        except KeyboardInterrupt:
            # 处理用户按Ctrl+C的情况,避免程序崩溃
            print("\n😯 别着急,输入exit可以正常退出哦")
        except EOFError:
            # 处理用户按Ctrl+D的情况
            print("\n👋 再见!")
            break

if __name__ == '__main__':
    run_my_app()
额外福利:Node.js 实现示例

如果你用Node.js,用官方的readline模块也能快速搞定:

const readline = require('readline');

// 创建readline实例,指定提示符
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  prompt: '$ myApp> '
});

// 启动提示符
rl.prompt();

// 监听用户输入事件
rl.on('line', (input) => {
  const cmd = input.trim();
  switch(cmd) {
    case 'hello':
      console.log('👋 你好呀!');
      break;
    case 'hello 李四':
      console.log('👋 你好, 李四!');
      break;
    case 'exit':
      console.log('👋 再见啦!');
      rl.close();
      break;
    default:
      console.log(`❓ 未知命令:${cmd}`);
  }
  // 输入完成后重新显示提示符
  rl.prompt();
});

// 监听退出事件
rl.on('close', () => {
  process.exit(0);
});

这些例子运行后都能实现你想要的$ myApp>交互提示符,而且支持自定义命令逻辑,你可以根据自己的需求修改扩展~

内容的提问来源于stack exchange,提问作者Ali Mousa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:10:22