J'ai créé un programme C simple comme ceci:
int main(int argc, char *argv[]) {
if (argc != 5) {
fputs("Not enough arguments!\n", stderr);
exit(EXIT_FAILURE);
}
Et j'ai mon PATH modifié dans etc / bash.bashrc comme ceci:
PATH=.:$PATH
J'ai enregistré ce programme en tant que set.c et je le compile avec
gcc -o set set.c
dans le dossier
~/Programming/so
Cependant, quand j'appelle
set 2 3
il ne se passe rien. Aucun texte n'apparaît.
Appel
./set 2 3
donne le résultat attendu
Je n'ai jamais eu de problème avec PATH auparavant et
which set
retourne ./set. Il semble donc que le CHEMIN soit le bon. Que se passe-t-il?
testpour essentiellement la même raison; testest également un shell intégré.
testsemble logique. Bien sûr, au moment où vous le mettez dans votre, PATHvous devriez vraiment avoir trouvé un nom différent. Et jusqu'à ce que vous mettiez le programme dans votre, PATHvous devrez l'invoquer comme de ./testtoute façon. Il est donc testassez correct d'utiliser le nom d'un programme tant qu'il s'agit d'un test rapide que vous avez l'intention de supprimer avant la fin de la journée.
foo.
lschaque fois que vous allez voir s'il existe, il s'exécutera (mais uniquement si vous modifiez votre chemin comme vous l'avez fait dans la question).