Я создал простую программу на C, например:
int main(int argc, char *argv[]) {
if (argc != 5) {
fputs("Not enough arguments!\n", stderr);
exit(EXIT_FAILURE);
}
И мой PATH был изменен в etc / bash.bashrc примерно так:
PATH=.:$PATH
Я сохранил эту программу как set.c и собираю ее
gcc -o set set.c
в папке
~/Programming/so
Тем не менее, когда я звоню
set 2 3
Ничего не произошло. Там нет текста, который появляется.
призвание
./set 2 3
дает ожидаемый результат
У меня никогда не было проблем с PATH раньше и
which set
возвращается ./set
. Так что, кажется, ПУТЬ правильный. Что происходит?
test
по той же причине; test
это встроенная оболочка тоже.
test
имеет смысл. Конечно, к тому времени, когда вы положите это в свой, PATH
вы действительно должны были придумать другое имя. И пока вы не поместите программу в свою, PATH
вы должны будете вызывать ее так ./test
или иначе. Поэтому вполне нормально использовать имя test
для программы, если это быстрый тест, который вы собираетесь удалить до конца дня.
foo
.
ls
то всякий раз, когда вы будете проверять, существует ли он, он будет запускаться (но только если вы измените свой путь, как вы указали в вопросе).