-1

У меня много команд, которые я часто запускаю, например:

sometool --environment = dev command = получить foo/bar/baz/configfile

sometool --environment = dev command = обновить foo/bar/baz/configfile

sometool --environment = команда dev = статус

Есть ли какой-нибудь инструмент, который я могу настроить с помощью списка общих команд, а также иметь некоторые опции для их интеллектуального редактирования (например, если я хочу использовать другое значение для --environment там).

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

3 ответа3

4

Вы не упоминаете свою оболочку - это действительно зависит от оболочки.

В большинстве оболочек вы можете использовать псевдонимы и функции. Это может значительно снизить количество набранных вами команд для повторяющихся команд или повторяющихся подмножеств команд.

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

Лично я также настраиваю bash-дополнения для подобных вещей. Например, у меня есть подкаталог, в котором есть каталоги всех моих рабочих проектов. У меня есть дополнения для различных действий над проектами (проверьте, извлекаются ли файлы для проекта, создайте установочный пакет и т.д.)

Для завершения bash. Вы пишете функцию, которая может проверить текущий аргумент, предыдущий аргумент и командную строку и выяснить, что имеет смысл в текущем контексте. Затем прикрепить эту функцию к разыскиваемой команде с complete Башем встроенных командами.

«Что имеет смысл в текущем контексте» может быть чем угодно - это могут быть каталоги, файлы, другие аргументы. вообще ничего. Посмотрите примеры в комплекте bash-дополнений, чтобы увидеть некоторые примеры.

Код завершения bash был заимствован из zsh, поэтому, если у вас есть zsh, вы также сможете использовать его. Фактически, код завершения bash был заимствован рано из zsh, и zsh расширил его, поэтому zsh завершение, возможно, более мощное.

1

На ум приходит ncurses, для его изучения требуются некоторые усилия, но тогда у вас есть система меню именно для этой цели.

Редактировать: ncurses разрешают навигацию по меню, принимают пользовательский ввод, он был создан для CLI, и может хранить базовые команды, позволяет расширять регулярные выражения. Многие дистрибутивы Linux используют библиотеку curses с вариантами выбора на основе последовательностей во время установки и запускают другие команды в ответ - что и когда может отслеживаться на следующей однопользовательской консоли с использованием Alt-функции, такой как Alt-F2, поэтому ожидаемый результат возможно отслеживается и скрипт отлаживается.

Я использовал его, когда учился программировать Visual Basic для DOS, и когда я начал изучать Linux, я создал несколько попыток имитировать текстовые меню и функции VB DOS.

0

Используйте редактор и вставляйте полезные команды в файл. У меня есть псевдоним 'b', который открывает / редактирует файл. Не нужно переоценивать это.

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