Bash como sugestão de instalação no tcsh

0

Em um bash shell, se você colocar algum comando que não esteja instalado em seu sistema, ele lançará um erro e também fornecerá uma sugestão de instalação do pacote. Por exemplo -

$ iostat

Command 'iostat' not found, but can be installed with:

sudo apt install sysstat

Meu favorito pessoal é o tcsh, mas ele não fornece nenhuma sugestão de instalação do pacote, enquanto algum comando não é encontrado. Como posso obter a sugestão de instalação do pacote (como o bash) no tcsh?

    
por sabquat 15.05.2018 / 15:22

1 resposta

0

A mágica funciona devido ao command_not_found pacote que fornece uma função command_not_found_handle para bash e zsh .

Isso funciona em bash por causa desse snippet em /etc/bash.bashrc

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
        function command_not_found_handle {
                # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
                   /usr/lib/command-not-found -- "$1"
                   return $?
                elif [ -x /usr/share/command-not-found/command-not-found ]; then
                   /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
                else
                   printf "%s: command not found\n" "$1" >&2
                   return 127
                fi
        }
fi

Há também um arquivo /etc/zsh_command_not_found que você pode pesquisar para obter esse comportamento para zsh - aqui, a função é chamada command_not_found_handler .

A partir de uma pesquisa rápida, não parece que tcsh inclua essa funcionalidade para definir um command_not_found_handle . Então pode ser o nome, é diferente, nesse caso você só precisa converter o trecho em tcsh e incluí-lo no seu ~/.tcshrc , senão você não pode!

    
por solsTiCe 15.05.2018 / 15:50