Eu criei um programa C simples assim:
int main(int argc, char *argv[]) {
if (argc != 5) {
fputs("Not enough arguments!\n", stderr);
exit(EXIT_FAILURE);
}
E eu tenho meu PATH modificado no etc / bash.bashrc da seguinte forma:
PATH=.:$PATH
Salvei este programa como set.c e estou compilando-o com
gcc -o set set.c
na pasta
~/Programming/so
No entanto, quando ligo
set 2 3
nada acontece. Não há texto que apareça.
Chamando
./set 2 3
dá o resultado esperado
Eu nunca tive um problema com PATH antes e
which set
retorna ./set
. Parece que o CAMINHO é o correto. O que está acontecendo?
test
basicamente pelo mesmo motivo; test
também é um shell embutido.
test
parece fazer sentido. É claro que, no momento em que você o coloca, PATH
você deve ter um nome diferente. E até você colocar o programa no seu, PATH
você teria que invocá-lo da mesma ./test
maneira. Portanto, é bom usar o nome test
de um programa, desde que seja um teste rápido que você deseja excluir antes do final do dia.
foo
.
ls
sempre que for ver se ele existe, ele será executado (mas somente se você modificar seu caminho, como fez na pergunta).