Stworzyłem prosty program C taki jak:
int main(int argc, char *argv[]) {
if (argc != 5) {
fputs("Not enough arguments!\n", stderr);
exit(EXIT_FAILURE);
}
I mam zmienioną PATH w etc / bash.bashrc w następujący sposób:
PATH=.:$PATH
Zapisałem ten program jako set.c i kompiluję go
gcc -o set set.c
w folderze
~/Programming/so
Jednak kiedy dzwonię
set 2 3
nic się nie dzieje. Brak wyświetlanego tekstu.
Powołanie
./set 2 3
daje oczekiwany wynik
Nigdy wcześniej nie miałem problemu z PATH
which set
zwraca ./set
. Wygląda więc na to, że ŚCIEŻKA jest poprawna. Co się dzieje
test
z tego samego powodu; test
jest również wbudowany w powłokę.
test
wydają się mieć sens. Oczywiście, zanim go włożysz PATH
, naprawdę powinieneś wymyślić inne imię. I dopóki nie włożysz programu do swojego programu, PATH
będziesz musiał go w ./test
każdym razie wywołać . Dlatego używanie nazwy test
programu jest w porządku, o ile jest to szybki test, który zamierzasz usunąć przed końcem dnia.
foo
.
ls
nazwiesz, to za każdym razem, gdy zobaczysz, czy istnieje, uruchomi się (ale tylko jeśli zmienisz ścieżkę, tak jak w pytaniu).