Como mascarar o comando stock no Bash

4

Eu tenho uma função que executo com frequência na CLI, por isso dei a ela o nome abreviado t :

$ which t
/home/dotancohen/.bin/t

$ cat 'which t'
#!/bin/bash
ctags-exuberant -f php.tags --languages=PHP -R

$ ls -lh /home/dotancohen/.bin/t
-rwxr-xr-x 1 dotancohen dotancohen 316 Jan  3 16:58 /home/dotancohen/.bin/t

$ echo $PATH
/home/dotancohen/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/dotancohen/.rvm/bin

No entanto, quando tento executar o programa, recebo uma mensagem dizendo que devo instalar outro aplicativo que também use o nome t :

$ t
The program 'task' is currently not installed. To run 'task' please ask your administrator to install the package 'taskwarrior'

Como posso fazer o Bash executar /home/dotancohen/.bin/t quando eu inserir t ?

    
por dotancohen 24.01.2016 / 09:49

1 resposta

8

Isso se deve ao fato de você ter t definido como um alias (ou uma função), você pode encontrá-lo usando o type builtin:

type -a t

Aliases, funções (e outros recursos internos do shell) têm precedência sobre executáveis externos.

Para executar o executável t do seu PATH , faça:

't'

Ou

"t"

Ou

\t

Observe que apenas t não é um bom nome para um arquivo.

    
por heemayl 24.01.2016 / 10:08