Software de demonstração falsa para linha de comando

3

Estou procurando algum software que seja útil para fazer demonstrações.

Eu regularmente tenho que mostrar os efeitos dos scripts para as aulas enquanto falo sobre seus efeitos, e equaly regularmente tenho problemas com os dedos e tenho que reescrever vários comandos - desperdiçando tempo de aula e energia geral.

Eu gostaria de poder gravar uma sequência de comandos com antecedência e depois reproduzi-los na velocidade de minha escolha.

Assim, posso ter um arquivo que contenha os comandos:

echo "hello world!" 
ls ls -l  
ls -l | sort

Gostaria de poder reproduzir estes comandos digitando semelhantes em

.

Então, eu teria um prompt de comando piscando e, se eu digitasse 'echo' hxxx ', o prompt de comando seria lido

home $ echo "inferno

e se eu digitei qualquer outra letra o terminal iria encher com o resto do comando até eu pressionar enter, quando ele executa o comando. O ponto é que, mesmo se eu estragar o comando ao digitá-lo, o comando que eu tinha preparado com antecedência seria executado.

Minha pergunta é - existe software similar para dar demonstrações? ou mesmo, isso é uma coisa fácil de criar scripts ...?

EDIT - duas coisas rápidas, antes de mais nada eu estou no osx - mas seria bom ter uma solução geral para outras pessoas que chegam aqui do google. e segundo, muitos dos comentários / respostas estão se concentrando, de fato, tornando rápido e fácil digitar comandos longos por meio de teclas de atalho e afins. Na verdade, eu gostaria que parecesse ao menos que eu estivesse digitando ao vivo - é por isso que eu falo um pouco sobre o mapeamento de teclas um-para-um, mas não acho que expliquei tão bem quanto poderia. ..

    
por Joe 16.12.2012 / 16:38

3 respostas

1

Você pode usar o Perl e o módulo IO :: Prompter. Aqui está um script que deve ajudar

#!/usr/bin/perl -w

use IO::Prompter<<EOF;
echo "Hello world!"
ls ls -l
ls -l | sort
EOF

use strict;
use feature 'say';
use IPC::Open2;
use Time::HiRes 'sleep';

open2('>&STDOUT',\*SHELL,'bash');

while(my $cmd=prompt '$'){
        say SHELL $cmd;
        sleep 0.05;
}

Este script fornece um prompt (configurável, basta editar o argumento para prompt ) e cada pressionamento de tecla insere um caractere do bloco de comando acima. Backspace funciona também, e você também pode pressionar enter e IO :: Prompter completará automaticamente a linha e enviará para bash a uma velocidade razoável de escrita. Depois de executar os comandos do bloco de comando, o script continuará a aceitar qualquer entrada e a enviará para o bash.

Você deve ter o Perl já instalado. Para instalar o IO :: Prompter, execute cpan IO::Prompter do seu emulador de terminal favorito.

    
por 16.12.2012 / 22:48
0

Que tal um gravador de macro ou IronAHK ?

  • Com o IronAHK (a porta Linux / Mac do AutoHotkey ), você poderia atribuir pressionamentos de teclas ou seqüências de caracteres a chaves para facilitar a digitação rápida e fácil de dados e comandos. Por exemplo, você poderia atribuir os seguintes comandos como strings brutas ou como uma chamada para os comandos do sistema.

    echo "hello world!" 
    ls ls -l  
    ls -l | sort
    

    Então você pode ligá-lo a uma tecla como A , ou + 1 , ou + Desloca + F1 ou o que você quiser. Em seguida, você pode pressionar as teclas de atalho em ordem no tempo de execução (isso é facilitado usando teclas de atalho numéricas).

    Organizando os comandos em grupos, você pode obter o mais detalhado que quiser para entrar em qualquer ponto que achar necessário ou pausar a demonstração para fazer algo como mostrar arquivos, etc. .

  • Com um macroprograma, você pode gravar seus toques no teclado e reproduzi-los, geralmente com a capacidade de ajustar o controle de velocidade.

por 16.12.2012 / 21:19
0

Eu escrevi shellscript-runner.zsh para fazer o que você quer. Faça o download, execute zsh e, em seguida, em zsh, crie o arquivo. Agora o shellscript-runner está armado e pronto para você rodar a demonstração embutida. Leia o seu caminho através do texto de demonstração no final do arquivo e experimente. Espero que você ache isso todo poderoso e fácil de usar.

Seu desejo de controlar quando cada personagem aparece não está implementado no momento, mas pode ser adicionado.

Zsh (caso você nunca tenha tentado) tem muitos recursos não presentes no bash. Os poderosos recursos de edição de linhas do Zsh , tornaram possível o runner de shellscript . Seria impossível implementar no bash.

    
por 20.04.2014 / 01:10