Qual é a diferença sutil entre 'test.sh' e './test.sh'

0

Eu tenho o seguinte script:

$ cat test.sh
#! /usr/local/bin/bash
date

Execute,

$ test.sh
-bash: test.sh: command not found

Funciona

$ ./test.sh
Thu Oct 25 18:04:45 CST 2018

No entanto, estou ciente de que test.sh é idêntico a ./test.sh ,

$ file test.sh
test.sh: Bourne-Again shell script text executable, ASCII text
$ file ./test.sh
./test.sh: Bourne-Again shell script text executable, ASCII text

Qual é a diferença sutil entre test.sh e ./test.sh ?

    
por JawSaw 25.10.2018 / 12:09

1 resposta

1

Os dois não são formas idênticas de executar um comando. Com ./test.sh , você executa o script test.sh no diretório atual. Com test.sh , você executa o primeiro test.sh encontrado em seu $PATH .

Se você tivesse chamado o script test , a execução de apenas test teria usado o utilitário test que provavelmente está embutido em seu shell (que não produz saída), enquanto que executar ./test teria executado seu roteiro.

Relacionados:

por 25.10.2018 / 12:15

Tags