bash
tem um comando interno chamado kill
, e também no Linux, existe um comando externo (programa) chamado kill
.
Quando executo kill
in bash
, o comando interno kill
é executado.
Eu tenho duas perguntas:
- Existe uma configuração que posso alterar para fazer com que o comando externo seja executado em vez do comando interno por padrão (sem especificar o caminho completo do comando externo, é claro).
- É um comportamento padrão para o comando interno ser executado em vez do comando externo por padrão em todos os shells (principais) ou é apenas uma
bash
coisa?
Responder1
Use
env
para invocá-lo.$ env kill kill: not enough arguments $ kill kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Todos os shells e processadores de comando.
Responder2
Para sua primeira pergunta: Sim, existe uma configuração para fazer com que o comando externo seja executado em vez do comando interno por padrão.
Você pode desligar o built-in
enable -n COMMAND
Você pode ativar o recurso integrado
enable COMMAND
ou você pode alterar a prioridade do comando. A prioridade do comando bash é:
- aliás, é o mais alto
- função
- construídas em
- comando externo em $PATH
Para sua segunda pergunta: acho que você sempre pode assumir que o comando interno é anterior ao comando externo. Não é apenas uma coisa festiva.