Как сделать apt-cache, apt-get в одну команду?

В Ubuntu 11.04 или 10.04 как я могу сделать apt-get, apt-cache все в одном myapt, чтобы я мог просто использовать только один, как в Fedora?

Например: 115]

myapt search yum   # same as apt-cache search
myapt remove yum   # same as apt-get remove
myapt install yum  # same as apt-get install

Есть идеи, как сделать псевдоним для этого?

4
задан 26 September 2011 в 19:25

2 ответа

Вы можете создать скрипт со следующим содержанием

#!/bin/bash

command="$1"; shift

case $command in
  add|depends|dotty|dump|dumpavail|gencaches|madison|pkgnames|policy|rdepends|search|show|showpkg|showsrc|stats|unmet|xvcg)
    apt-cache "$command" "$@"
    ;;
  autoclean|autoremove|build-dep|check|clean|dist-upgrade|dselect-upgrade|install|purge|remove|source|update|upgrade)
    apt-get "$command" "$@"
    ;;
esac

Предположим, вы называете его myapt. Затем, чтобы все еще иметь преимущество завершения bash, вам нужно добавить следующие строки в ~/.bashrc:

_myapt() {
  _apt_get
  tt=("${COMPREPLY[@]}")
  _apt_cache
  COMPREPLY+=("${tt[@]}")
  return 0
} &&
complete -F _myapt $filenames myapt

К сожалению, $command должен предшествовать любым опциям, но кажется, что завершение bash не работает для опции, следующие за командой.

0
ответ дан 26 September 2011 в 19:25

Я не уверен, что вы можете использовать псевдоним для этого, но вы можете использовать bash для создания сценария.
Сейчас я не являюсь bash-сценаристом, поэтому я не смог бы рассказать вам точный код для этого, но вы могли бы сделать что-то вроде (это просто псевдокод, вроде как, так что не ожидайте это работает !!!) :

var action
var input
get action, input
  if action == search
    then do apt-cache search input
  if action == remove
    then do apt-get remove input
  if action == install
    then do apt-get install input

Имейте в виду, что вы можете написать скрипт (или даже скомпилированное приложение) на любом удобном для вас языке, например на python или ruby ​​для Например, это не обязательно должен быть bash.

Опять же, помните, мой пример - просто псевдокод .

0
ответ дан 26 September 2011 в 19:25

Другие вопросы по тегам:

Похожие вопросы: