Armazene e chame comandos bash favoritos

3

Estou procurando uma ferramenta de linha de comando do Linux que me permita armazenar meus comandos favoritos favoritos / mais usados / mais difíceis de lembrar e executá-los rapidamente quando necessário.

Eu prefiro não usar aliases porque quero evitar conflitos de nomes. alias é uma coisa útil, mas não é o que estou procurando, ou seja, alguma biblioteca de trechos de linha de comando .

Um exemplo do que eu quero é:

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

Eu acho que sou capaz de codificar esta ferramenta sozinha (talvez usando python-cliapp ou php5-cli ), mas se algo já existir prefiro não reinventar a roda.

    
por lorenzo-s 26.06.2012 / 19:40

2 respostas

3

Se você não se importa com a falta de mensagens de erro para erros de sintaxe etc., você pode usar este script simples:

#!/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
    
por 26.06.2012 / 19:59
8

Parece que escrever scripts e colocá-los em ~/bin (que estaria em seu PATH ) é uma alternativa aceitável. Isso funcionaria a menos que você queira ver e editar o comando antes de pressionar ENTER para executá-lo, mas seu exemplo acima não demonstra esse requisito.

    
por 26.06.2012 / 19:49