Ao tentar adicionar um pouco mais de detalhes a uma pergunta relacionada , percebi que não sabia como especificar qual dos tipos de palavras Bash disponíveis executar. De acordo com help type
há cinco tipos de palavras:
- pseudônimo
- palavra chave
- função
- construídas em
- Arquivo
É possível que uma palavra tenha vários tipos ( true
é apenas um exemplo; seria uma palavra substituída mais comumente cd
):
$ type -a true
true is a shell builtin
true is /bin/true
Como você força a execução de um sinônimo específico? Até agora, em ordem de precedência:
alias: este é um caso especial, pois tem precedência sobre todos os outros sinônimos. Forçar isso só seria útil quando o comando falhar se o alias não estiver definido.
$
palavra-chave:
$
função:
$
construídas em:
$ builtin true
Arquivo:
$ command true $ $(which true) $ /bin/true
Citar uma palavra exclui aliases e palavras-chave. Isso é,
$ 'true'
executará apenas a função, incorporada ou arquivo.
command
pesquisa de função, mas nenhuma delas especifica qual dos sinônimos restantes será usado. Estou procurando uma maneira de especificar para executar apenas um sinônimo específico .builtin
é usado, por exemplo, no RVM para substituircd
um efeito agradável.Um idioma extremamente útil para mim é o seguinte:
Agora, se eu executar o script com -D especificado, o modo de desenvolvimento será ativado e o cd (ou qualquer outro comando agrupado) ecoará as informações de depuração
Isso é especialmente útil com scripts que executam ssh. Claro que eu poderia alternar set -x, mas isso é mais útil e legível para mim.
fonte