我有很多经常运行的命令,例如:
sometool --environment=dev 命令=fetch foo/bar/baz/configfile
sometool --environment=dev 命令=更新 foo/bar/baz/configfile
sometool --environment=dev 命令=status
是否有任何工具可以让我配置常用命令列表,并提供一些选项来智能地编辑它们(例如,如果我想在--environment
那里使用不同的值)。
如果它可以是路径敏感的,那就更好了,这样我就可以根据我所在的位置使用不同的命令集。
答案1
你没有提到你的 shell - 这确实依赖于 shell。
在大多数 shell 中,你可以使用别名和函数。这可以减少你输入重复命令或重复命令子集的时间。
对于重复的命令,别名更合适。函数可以接受参数,因此当您有类似但不完全相同的命令副本时,它的功能更强大。
就我个人而言,我也为类似的东西配置了 bash-completions。例如,我有一个子目录,其中包含我所有工作项目的目录。我有针对项目的各种操作的完成项(检查项目的文件是否已签出、创建安装包等)。
用于 bash 补全。您编写一个函数来检查当前参数、前一个参数和命令行,并找出当前上下文中有意义的内容。然后使用 bashcomplete
内置命令将该函数附加到所需命令。
“在当前上下文中有意义的东西”可以是任何东西 - 可以是目录、文件、其他参数。任何东西。查看bash-完成捆绑查看一些示例。
bash 补全代码是从 zsh 借来的,所以如果你有 zsh,你也可以使用它。事实上,bash 补全代码早期是从 zsh 借来的,而 zsh 对其进行了扩展,因此可以说 zsh 补全功能更强大。
答案2
我想到的是 ncurses,学习它需要花费一些精力,但是你会有一个专门用于此目的的菜单系统。
编辑:ncurses 允许基于菜单的导航,接受用户输入,它是为 CLI 创建的,并且能够存储基本命令,允许正则表达式扩展。许多 Linux 发行版在安装期间使用带有基于序列的选择选项的 curses 库,并在响应中运行其他命令 - 可以在下一个单用户控制台上使用 Alt 功能(例如 Alt-F2)监视什么和何时,因此可以监视预期结果并调试脚本。
我在学习为 DOS 编写 Visual Basic 程序时用过它,而当我开始学习 Linux 时,我构建了一些程序试图模仿 VB DOS 文本菜单和功能。
答案3
使用编辑器并将有用的命令粘贴到文件中。我有一个名为“b”的别名,用于打开/编辑文件。无需过度设计这个。