Я создал простую программу на 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то всякий раз, когда вы будете проверять, существует ли он, он будет запускаться (но только если вы измените свой путь, как вы указали в вопросе).