Esforçando-se em definir um caminho independente dentro de um script para chamar outro script

0

Os arquivos a seguir residem em um determinado diretório:

path/to/file.sh
path/to/file2.sh

Funciona para chamar file2.sh dentro de file.sh da seguinte forma:

path/to/file.sh
. ./path/to/file2.sh

mas quando os arquivos são retirados em outro diretório:

src/path/to/file.sh
src/path/to/file2.sh

file.sh não pode mais encontrar o arquivo2

Possível solução

Um possível é verificar se existe um determinado diretório

path/to/file.sh

if [ -d "src" ]; then
  . $PWD/src/path/to/file2.sh
else
  . $PWD/path/to/file2.sh
fi

mas quando os arquivos são retirados em outro diretório, isso irá quebrar novamente.

Pergunta

Qual solução funcionará independentemente na estrutura de diretórios?

    
por 030 19.06.2017 / 14:00

1 resposta

1
source "$(dirname -- "$0")/file2.sh"

para a origem file2.sh localizada no mesmo diretório que o script de chamada.

    
por 19.06.2017 / 14:04

Tags