J'ai une fonction que je lance souvent à partir de la CLI, alors je lui ai donné le nom abrégé 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
Cependant, lorsque j'essaie d'exécuter le programme, je reçois un message indiquant que je devrais installer une autre application utilisant également le nom t
:
$ t
The program 'task' is currently not installed. To run 'task' please ask your administrator to install the package 'taskwarrior'
Comment faire pour que Bash exécute /home/dotancohen/.bin/t
lorsque j'entre t
?
Ceci est dû au fait que vous avez t
défini comme un alias (ou une fonction), vous pouvez le trouver en utilisant le type
intégré:
type -a t
Les alias, fonctions (et autres fonctions intégrées du shell) ont priorité sur les exécutables externes.
Pour exécuter l'exécutable t
à partir de votre PATH
, faites:
't'
Ou
"t"
Ou
\t
Notez que juste t
n’est pas un bon nom pour un fichier.