Onde está a documentação do comando hash?

1

Quando digito man hash , mostra-me man builtin .

Estou tentando entender esta linha:

hash -r 2>/dev/null || true

O que o hash -r faz e o que ele retorna.

Contexto:

export PATH="$PWD/bin:$PATH"
hash -r 2>/dev/null || true

link

    
por pabvid 06.03.2016 / 02:50

2 respostas

4

hash é um shell embutido.

Se você estiver usando bash , verifique:

help hash

Para sua conveniência, aqui está:

hash: hash [-lr] [-p pathname] [-dt] [name ...]

Remember or display program locations.

Determine and remember the full pathname of each command NAME.  If
no arguments are given, information about remembered commands is displayed.

Options:
  -d                forget the remembered location of each NAME
  -l                display in a format that may be reused as input
  -p pathname       use PATHNAME as the full pathname of NAME
  -r                forget all remembered locations
  -t                print the remembered location of each NAME, preceding
            each location with the corresponding NAME if multiple
            NAMEs are given
Arguments:
  NAME              Each NAME is searched for in $PATH and added to the list
            of remembered commands.

Exit Status:
Returns success unless NAME is not found or an invalid option is given.

Para outros shells, verifique o local habitual para builtins. Por exemplo, para zsh , verifique:

man zshbuiltins

What hash -r does and what it returns.

hash -r remove todos os locais lembrados da tabela de hash e retorna sucesso.

    
por 06.03.2016 / 02:56
1

hash é um shell padronizado embutido e hash -r redefine o hash de caminho atual usado para localizar comandos em PATH .

Chamar hash -r depois de definir PATH não é necessário, pois a alteração de PATH redefine automaticamente o hashing de comando atual. Isso vale para o Bourne Shell e para o ksh , e esperaria que outros shells se comportassem da mesma maneira.

    
por 06.03.2016 / 14:05