Я часто создаю длинную команду bash или zsh, которая сама по себе недостаточно длинна, чтобы быть сценарием сама по себе. Например, когда я отлаживаю выражение sed, я часто меняю один символ и перезапускаю команду, чтобы посмотреть, как изменится вывод:
$ echo "123 eyes on me" | sed -E 's/[[:alnum:]*]//'
23 eyes on me
$ echo "123 eyes on me" | sed -E 's/[[:alnum:]]*//'
eyes on me
$ echo "123 eyes on me" | sed -E 's/[[:alnum:] ]*//'
$ echo "123 eyes on me" | sed -E 's/[[:digit:] ]*//'
eyes on me
Даже со знанием vi-mode
и навыками работы с терминалом сложно отредактировать предыдущую команду и повторно запускать ее каждый раз. Я бы предпочел просто отредактировать параметры на месте и увидеть их эффект в реальном времени.
Некоторые веб-сайты предоставляют подобные инструменты для конкретных случаев использования, например, с соответствием регулярному выражению:
![enter image description here](https://i.stack.imgur.com/2Ql6K.png)
Другие примеры включают линтеры JSON, калькуляторы или парсеры YAML. Однако все они страдают от множества проблем:
- они не являются общими и переносимыми для разработки команд в целом, что если я захочу направить вывод регулярного выражения в
tr
, а затем выбрать третий столбец с помощью awk
?
- может вести себя иначе, чем моя команда в терминале
- он работает в браузере онлайн, а не в моем терминале
- не с открытым исходным кодом
Есть ли какой-нибудь способ развернуть выражение командной строки в моем терминале и посмотреть вывод, когда я его печатаю?