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