Como você omite “./” ao executar scripts no diretório atual


10

Em alguns tutoriais pela Internet, eles podem executar um script no diretório atual sem fazer:

./script

Como você omite isso? Estou usando o CentOS 5.6 x64. Eu quero executá-lo desta maneira

script


3
Observe que isso quase sempre é uma má ideia, especialmente para o usuário root.
David Schwartz

1
Qual é o propósito / história por trás de ./?
Pete

Eu sou apenas curioso porque ele sempre precisa ter ./
Aivan Monceller

O último comentário pode ser uma pergunta separada IMHO - é uma coisa importante a entender sobre a execução de programas em geral!
rozcietrzewiacz

4
@Pete (e Aivan): no Linux / UNIX, o shell só executa programas se souber o caminho para eles (usando um caminho que você especificar ou pesquisando a variável PATH). Não pressupõe que você deseja pesquisar no diretório atual como o Windows faz. Ele pesquisa exatamente o que você pede para pesquisar através da variável PATH. '.' é uma referência ao diretório atual. Então, quando você digita './script.sh', está dizendo o caminho.
Kasius

Respostas:


26

Qualquer um de:

  1. Adicione o diretório de trabalho atual ao seu PATH: PATH=${PATH}:.(isso é considerado um risco de segurança)
  2. Adicione explicitamente o caminho que contém seu script à variável PATH (isso não representa um risco à segurança se o acesso de gravação a esse diretório for limitado)
  3. Coloque seu script no local apropriado para o qual PATH já aponta (~ / bin, / usr / local / bin, ...)

A última opção é possivelmente a melhor.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.