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