用于终端的类似 iMacros 的程序?

用于终端的类似 iMacros 的程序?

有没有类似 Firefox 的 iMacros 插件的终端程序,可以记录我做过的事情,然后自动完成我做过的工作?我希望有这样的程序可以帮助我在终端上完成重复的工作,有什么建议吗?

问候

答案1

Google 发现。这就是你所追求的吗?

如果我要实现人机交互的自动化,我宁愿使用预计

答案2

bash包含您实际需要的所有实用程序。如果您想用一个命令执行多个命令,您可以编写自己的 shell 脚本或编写功能

功能简单

几天前,我定义了一个函数cs来更改目录并通过列出它ls

function cs() { cd $1 && ls ; }

$1是第一个参数。如果要使用所有参数的列表,请使用$@

它可以像这样调用

$ cs my_directory

这非常适合在当前会话中快速将多个命令组合在一起。您可以将该函数放在末尾,~/.bashrc以便在每次新的实例中加载它bash

脚本非常强大

脚本在自己的进程中执行。这意味着您分配的任何变量都是该进程的本地变量。要编写脚本,请放置一个舍邦在顶部。它由字符#!和执行文件的解释器的路径组成。Shebang 可能包括

#!sh
#!/bin/bash
#!/usr/bin/perl

在 shell 脚本中你可以做类似的事情

#!/bin/bash
VARIABLE=42
echo "The variable is $VARIABLE"  # echo appends a newline
echo "I'm now going to Google"
firefox http://www.google.com

不要忘记通过以下方式使脚本可执行

$ chmod +x my_script

然后可以像这样执行

$ ./my_script         # from the current directory
$ ~/path/to/my_script # absolute path, ~ is your User directory.

bash 语法包含条件、循环、开关和几乎所有东西。如果您讨厌低性能或需要更好的语法,您可以轻松地自学几行 Perl 或 Python。

查看你输入的内容

这些解决方案取决于您在执行操作之前是否知道要做什么。如果不是这种情况,您可以查看历史文件(~/.bash_history默认情况下)或使用history命令。

$ history 5

列出最后 5 条命令,并附带顺序编号。在我的例子中,这给出了

 1892  function foo() { cd $1 ; ls ; }
 1893  foo ..
 1894  history
 1895  history 15
 1896  history 5

您可以轻松地使用此命令列表来编写函数或 shell 脚本。

快速自制解决方案

这是一个宏录制的解决方案。它使用两个用户定义的函数和一个内联 perl 脚本来执行有趣的处理。

function create-marker() { echo "Starting the recording" ; }
function process-marker() { history | perl -ne's/^\s*\d*\s*//; chomp; push @commands, $_; }{ pop @commands; push @macro, pop @commands until $commands[-1] eq "create-marker" or !@commands; print "$_\n" for reverse @macro;' ; }

本次会议

$ create-marker
Starting the recording
$ cd ~
$ ls
# omitted
$ firefox http://www.google.com
$ process-marker

创建以下输出:

cd ~
ls
firefox http://www.google.com

然后您可以轻松地将其复制并粘贴到新脚本中。


笔记:我没有 Mac,而是在 Ubuntu 上测试了此操作。路径可能不同,但概念是合理的。

答案3

如果您不是用户,您可能不会对此感兴趣,但 emacs 有一个 shell 模式 ( M-x shell),它当然支持正常的 emacs 编辑命令,包括键盘宏(C-x (开始录制、C-x )停止,然后C-x e执行)。如果您所做的只是重复一堆输入,这可能会很有用。

但从更广泛的意义上来说,我同意 bobah 的观点——你没有说明你试图解决的问题,但它几乎肯定更适合像 expect 这样的工具,而不是原始输入伪造……

答案4

我知道你是在终端上问这个问题,但由于我还没有听说过这样的程序,所以另一种选择是ZOC 航站楼。它是商业的,所以可能不适合你,但根据你的问题描述,这是我能想到的最接近的东西。它确实支持在 Mac OS 上使用本地 shell(本质上是终端的替代品),并且它具有脚本录制功能(脚本菜单 -> 录制脚本)。您还可以将这些脚本(或较短的文本)映射到按钮和组合键上。

相关内容