Como posso definir o PATH no shell 'traço' (ou bash) para que ele não pesquise nenhum diretório? porque o PATH vazio pesquisa o diretório atual

1

Em Trafique se eu definir o PATH como uma string vazia, ele pesquisará no diretório atual:

$ export PATH=
$ echo $PATH

$ emptyexe
$ /usr/bin/ls emptyexe
emptyexe
$ pwd
/home/ctor
$ cd ..
$ emptyexe
dash: 36: emptyexe: not found

O que eu defino PATH para que seja garantido não pesquisar em nenhum diretório, muito menos no diretório atual?

Um PATH vazio também pesquisa o diretório atual no Bash, então a pergunta também se aplica a ele.

Isso está no Fedora 28 (um AppVM no Qubes OS atualmente):

$ rpm -qf 'which dash'
dash-0.5.9-1.fc25.x86_64
$ rpm -qf 'which bash'
bash-4.3.43-4.fc25.x86_64
    
por Marcus Linsner 08.09.2018 / 21:58

1 resposta

3

Por exemplo, $ export PATH=/dev/null deve fazer isso.

[ctor@dom0 ~]$ dash
$ echo 'echo meh' > nonemptyexe
$ /usr/bin/chmod a+x ./nonemptyexe
$ nonemptyexe
dash: 3: nonemptyexe: not found
$ ./nonemptyexe
meh
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/ctor/.local/bin:/home/ctor/bin
$ export PATH=/dev/null
$ nonemptyexe
dash: 7: nonemptyexe: not found
$ ./nonemptyexe
meh
$ echo $PATH
/dev/null
$ export PATH=""
$ echo $PATH

$ nonemptyexe
meh
$ ./nonemptyexe
meh
$ 
    
por 08.09.2018 / 21:58

Tags