Para explicar o segundo plano da resposta de Rush, export
não não faz nada com os executáveis em $PATH
. export PATH
simplesmente significa "Eu quero que a variável PATH seja herdada por todos os processos filhos." E o que acontece quando você digita myprogram
em um prompt e pressiona Enter é uma série de pesquisas dentro o shell .
When a command is specified in BASH without a pathname (e.g. myprogram, or ls), and it isn't an alias, function, builtin or keyword, BASH searches through the directories in PATH, in order from left to right, to see whether they contain an executable of the name you typed.
$PATH
, em outras palavras, é uma lista de diretórios , e é por isso que ele não pode ser usado para comandos únicos (exceto implicitamente, colocando o executável em um diretório separado). Você não pode promover um comando para um builtin ou palavra-chave, mas você pode criar uma função ou um alias. Veja o link anterior para uma explicação simples de suas diferenças.