3

Я ищу программное обеспечение, которое было бы полезно для демонстрации.

Мне регулярно приходится показывать эффекты сценариев на уроках, когда я говорю об их эффектах, а также регулярно у меня возникают проблемы с пальцами, и мне приходится переписывать различные команды - тратить время на занятия и общую энергию.

Я бы хотел заранее записать последовательность команд, а затем воспроизвести их со скоростью, которую я выберу.

Так что у меня может быть файл, который содержит команды:

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

Я хотел бы иметь возможность воспроизвести эти команды, набрав похожие .

Поэтому у меня будет мигающая командная строка, и если я наберу 'echo "hxxx', командная строка будет читать

home $ echo "ад

и если бы я набрал любые другие буквы, терминал заполнялся бы оставшейся частью команды, пока я не нажму клавишу ввода, когда она выполнит команду. Дело в том, что даже если я напортачу команду при ее наборе, команда, которую я подготовил заранее, будет выполнена.

Мой вопрос - существует ли подобное программное обеспечение для демонстрации? или даже, это легко написать сценарий ...?

РЕДАКТИРОВАТЬ - две быстрые вещи, в первую очередь я на OSX - но было бы неплохо получить общее решение для других людей, которые приходят сюда из Google. и во-вторых, многие комментарии / ответы концентрируются на том, что позволяет быстро и легко вводить длинные команды с помощью горячих клавиш и тому подобного. На самом деле, мне бы хотелось, чтобы это выглядело так, как будто я печатаю вживую - вот почему я добавил немного о сопоставлении клавиш «один к одному», но я не думаю, что объяснил это так хорошо, как мог бы. ..

3 ответа3

1

Вы можете использовать Perl и модуль IO::Prompter. Вот скрипт, который должен помочь

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

Этот скрипт дает вам подсказку (настраиваемую, просто отредактируйте аргумент для prompt), и каждое нажатие клавиши вставляет символ из командного блока выше. Backspace также работает, и вы также можете нажать enter, и IO::Prompter автоматически завершит строку и отправит ее в bash с разумной скоростью записи. После запуска команд из командного блока скрипт продолжит принимать любые входные данные и отправит их в bash.

Вы должны иметь Perl уже установлен. Чтобы установить IO::Prompter, запустите cpan IO::Prompter из вашего любимого эмулятора терминала.

0

А как насчет макро-рекордера или IronAHK?

  • С помощью IronAHK (порт AutoHotkey для Linux/Mac) вы можете назначать клавиши или строки клавишам, чтобы быстро и легко вводить целые порции данных и команд. Например, вы можете назначить следующие команды как необработанные строки или как вызов системных команд.

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

    Затем вы можете привязать его к клавише, такой как A, или +1, или +Shift+F1, или как вам угодно. Затем вы можете нажимать горячие клавиши по порядку во время выполнения (это делается проще с помощью цифровых горячих клавиш).

    Организовав команды по группам, вы можете получить как можно более детальную информацию, так что вы можете разбить ее в любой момент, который, по вашему мнению, может потребоваться или вам нужно приостановить демонстрацию, чтобы сделать что-то еще, например, файлы шоу и т.д.

  • С помощью макропрограммы вы можете записывать нажатия клавиш, а затем воспроизводить их, как правило, с возможностью регулировки скорости.

0

Я написал shellscript-runner.zsh, чтобы делать то, что вы хотите. Загрузите его, запустите zsh, затем, находясь в zsh, загрузите файл. Теперь shellscript-runner вооружен и готов к запуску встроенной демоверсии. Прочтите демонстрационный текст в конце файла и попробуйте. Я надеюсь, вы найдете его мощным и простым в использовании.

Ваше желание иметь возможность контролировать появление каждого персонажа в настоящее время не реализовано, но может быть добавлено.

Zsh (на случай, если вы никогда не пробовали) имеет много функций, которых нет в bash. Мощные функции редактирования строк в Zsh сделали возможным использование shellscript-runner. Это было бы невозможно реализовать в bash.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .