3

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

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

Пример того, что я хочу, это:

$ favorite --add hello 'echo Hello World!'
$ favorite hello
Hello World!
$ favorite --delete hello
$ favorite hello
favorite: shortcut 'hello' not defined
$ _

Я думаю, что я могу написать этот инструмент самостоятельно (возможно, используя python-cliapp или php5-cli), но если что-то уже существует, я предпочитаю не изобретать велосипед.

2 ответа2

8

Кажется, что написание сценариев и помещение их в ~/bin (что затем будет в вашем PATH) является приемлемой альтернативой. Это сработает, если вы не хотите видеть и редактировать команду перед нажатием клавиши ВВОД, чтобы выполнить ее, но ваш пример выше не демонстрирует это требование.

3

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

#!/bin/bash

case $1 in
  --add)
    if [ -a ~/.favorites/$2 ]; then
      echo favorite: Shortcut \'$2\' already exists.
    else
      echo $3 >> ~/.favorites/$2
    fi
  ;;
  --delete)
    if [ -a ~/.favorites/$2 ]; then
      rm ~/.favorites/$2
    else
      echo favorite: Shortcut \'$2\' does not exist.
    fi
  ;;
  *)
    if [ -a ~/.favorites/$1 ]; then
      $(cat ~/.favorites/$1)
    else
      echo favorite: Shortcut \'$1\' does not exist.
    fi
esac

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