다음과 같은 간단한 C 프로그램을 만들었습니다.
int main(int argc, char *argv[]) {
if (argc != 5) {
fputs("Not enough arguments!\n", stderr);
exit(EXIT_FAILURE);
}
그리고 etc / bash.bashrc 에서 PATH를 다음 과 같이 수정했습니다 .
PATH=.:$PATH
이 프로그램을 set.c로 저장하고 다음과 같이 컴파일하고 있습니다.
gcc -o set set.c
폴더 안에
~/Programming/so
그러나 내가 전화하면
set 2 3
아무 반응이 없습니다. 표시되는 텍스트가 없습니다.
부름
./set 2 3
예상 결과를 제공합니다
나는 전에 PATH에 문제가 없었습니다.
which set
을 반환합니다 ./set
. 따라서 PATH가 올바른 것 같습니다. 무슨 일이야?
test
기본적으로 같은 이유로 테스트 프로그램을 호출하는 것도 좋지 않습니다 . test
쉘도 내장되어 있습니다.
test
것이 합리적입니다. 물론 당신이 그것을 넣을 때까지 당신은 PATH
정말로 다른 이름을 생각해 냈을 것입니다. 그리고 프로그램을 넣을 때까지 어쨌든 프로그램 PATH
을 호출해야 ./test
합니다. 따라서 test
하루가 끝나기 전에 삭제하려는 빠른 테스트라면 프로그램 이름을 사용하는 것이 좋습니다.
foo
입니다.
ls
존재하는지 확인할 때마다 실행됩니다 (그러나 질문에서했던 것처럼 경로를 수정하는 경우에만).