智慧型化的命令列工具 betty

2021-06-22 00:13:07 字數 1098 閱讀 7937

本文首先發布在

bettytoolcommandruby

betty 是乙個用ruby實現的非常簡單,好玩的智慧型化命令列提示工具。主要解決的問題是將英文翻譯成機器可以理解的unix命令。在它的官方文件中,我們可以找到詳細的說明和解釋。本文的主要目的在於根據betty為基礎,定製我們自己的"英語命令"。

整個程式的入口是main.rb檔案,它的主要功能是

接受命令行引數

lib/*.rb裝載所有可以執行的檔案

匹配尋找可以執行的命令

執行命令

如果你安裝成功了,你會發現在~/.bash_profile 或者其他的系統配置檔案中,有一行類似於如下的** 

alias betty="***/betty/main.rb"

從以上的分析可以看出,betty 不負責具體的命令執行,只負責將我們通俗的語言(比如英語)轉換成可以被系統執行的命令。

lib/*.rb中的檔案,負責

目標: 

想實現乙個提示命令,比如輸入betty give me a help就會在螢幕上顯示所有的命令提示

根據以上得分析,我們發現實現自己的executor非常簡單,基本的步驟如下

在lib中定義乙個新的module

定義乙個類方法interpret(command)如果匹配command,則返回responseexecutor註冊到$executors

具體的**請參考 

betty真是乙個好玩的工具,實現自己的特定的命令也特別的簡單。而且,這個專案還可以往更複雜的方向發展。比如類似於siri的語音提示,還有我們也可以定製自己的中文提示。由於這個專案才剛剛開始,所以還是有很多的不足之處,比如我們在處理特定的語音的時候,用的是正規表示式,還不夠智慧型,邏輯也特別簡單,如果想定製自己的需求,需要使用者自己實現更多的細節。但整體來說,這是乙個非常棒的工具!

命令列工具

在wince6.0 中,在vs2005 的 build 選單中,有乙個 advanced build commands 其中有很多編譯選項 sysgen 相當於執行命令 blddemo q 一般第一次編譯或者是 改變了 catalog 中的item 的時候,就用這個了。clean sysgen 相當...

命令列工具

執行 scws h 可以看到詳細幫助說明。usage scws options i input o output i string file 要切分的字串或檔案,如不指定則程式自動讀取標準輸入,每輸入一行執行一次分詞 o file 切分結果輸出儲存的檔案路徑,若不指定直接輸出到螢幕 c charse...

c mysql命令列 mysql 命令列工具

1 mysql命令選項 2 mysql命令 3 mysql日誌 4 mysql服務端幫助 5 執行mysql指令碼 6 使用技巧 mysql是乙個能夠編輯輸入行的簡單sql shell,支援互動式和非互動式訪問。使用互動式時,查詢結果以ascii表的格式展示。使用非互動式時,查詢結果以製表符分隔的格...