iMacros-como programa para terminal?

0

Existe um programa desse tipo para o Terminal, como o plugin iMacros para o Firefox, que pode gravar o que eu fiz, depois fazer automaticamente o trabalho que eu fiz? Espero que haja um programa para me ajudar a fazer o trabalho de repetição no terminal, então, alguma dica?

Atenciosamente

    
por liunx 08.10.2012 / 17:35

4 respostas

1

O Google encontra este . É o que você procura depois?

Se eu fosse para automatizar a interação entre humanos e TTY, eu preferiria fazê-lo usando Espero .

    
por 08.10.2012 / 17:50
1

bash contém todos os utilitários que você realmente precisa. Se você quiser executar um número de comandos com um único comando, você pode escrever seus próprios scripts de shell ou escrever funções .

Funções são fáceis

Há alguns dias, defini uma função cs para alterar o diretório e listá-lo via ls .

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

$1 é o primeiro argumento. Se você quiser usar a lista de todos os argumentos, use $@ .

Pode ser invocado como

$ cs my_directory

Isso é ótimo para agrupar rapidamente vários comandos na sua sessão atual. Você pode colocar a função no final de seu ~/.bashrc para carregá-la a cada nova instância de bash .

Scripts são bastante poderosos

Os scripts são executados em seu próprio processo. Isso significa que qualquer variável atribuída é local para esse processo. Para escrever um script, coloque um shebang no topo. Consiste nos caracteres #! seguidos pelo caminho para o interpretador que executará seu arquivo. Shebangs poderia incluir

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

Em um script de shell, você pode fazer coisas como

#!/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

Não se esqueça de tornar o script executável via

$ chmod +x my_script

Pode então ser executado como

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

A sintaxe bash contém condicionais e loops e switches e quase tudo. Se você detesta o baixo desempenho ou se você precisa de uma sintaxe mais agradável, você pode facilmente aprender algumas linhas de Perl ou Python.

Vendo o que você digitou

Essas soluções dependem de saber o que você deseja fazer antes de fazê-lo. Se esse não for o caso, você pode examinar o arquivo de histórico ( ~/.bash_history por padrão) ou usar o comando history .

$ history 5

lista os 5 últimos comandos, com um número em execução. No meu caso, isso dá

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

Você pode facilmente usar essa lista de comandos para escrever uma função ou um script de shell.

Uma solução rápida de homebrew

Aqui está uma solução para gravação de macro. Ele usa duas funções definidas pelo usuário e um script em linha perl para fazer o processamento interessante.

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;' ; }

Esta sessão

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

Cria a seguinte saída:

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

Você pode copiar e colar isso facilmente em um novo script.

Nota: Eu não tenho um Mac e testei isso no Ubuntu. Os caminhos podem ser diferentes, mas os conceitos são sólidos.

    
por 09.10.2012 / 00:35
0

É improvável que lhe interesse se você não for um usuário, mas o emacs possui um modo shell ( M-x shell ) que naturalmente suporta os comandos normais de edição do emacs, incluindo macros de teclado ( C-x ( para iniciar a gravação, C-x ) para parar, então C-x e para executar). Se tudo o que você está fazendo é repetir um monte de digitação, isso pode ser útil.

Mas mais amplamente eu concordo com o bobah - você não diz o problema que está tentando resolver, mas é quase certamente algo mais adequado para ferramentas como o esperado do que a falsificação de entrada bruta ...

    
por 08.10.2012 / 18:04
0

Eu sei que você está pedindo isso para o Terminal, mas como eu não ouvi falar sobre tal programa, uma alternativa seria o Terminal ZOC a>. É comercial, por isso pode não ser o seu caminho, mas é a coisa mais próxima que posso pensar, dada a descrição do seu problema. Ele suporta o uso de um shell local no Mac OS (essencialmente um substituto para o terminal) e possui um recurso de gravação de script (menu Script - > Record Scipt). Você também pode mapear esses scripts (ou textos mais curtos) em botões e combinações de teclas.

    
por 08.10.2012 / 19:37