Comando Bash para originar um arquivo em um diretório diferente?

4

Eu tenho uma coleção de scripts bash e eu quero colocar algumas opções de shell comuns e declarações de variáveis em um script "setup.sh" que seria originado no início de cada script.
minha estrutura de diretórios é como:

├── includes
│   └── setup.sh
├
└── server_config
    ├── build_server_core.sh
    ├── install_fail2ban.sh

Como os scripts podem ser executados em diferentes computadores / ambientes, não posso simplesmente usar um caminho codificado para o setup.sh

Existe um comando de uma linha para source um script em um diretório diferente do script em execução?

    
por the_velour_fog 18.07.2015 / 13:39

2 respostas

7

Primeiro, pegue o diretório do próprio script e, em seguida, use caminhos relativos como esse:

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source "$DIR/../includes/setup.sh"

Para mais informações sobre como encontrar o diretório correto, consulte o link

    
por 18.07.2015 / 14:17
-1
echo "$( echo $(cd ../ && pwd) )/includes/setup.sh"

ou

ParDir="$( echo $(cd ../ && pwd) )/includes/setup.sh"

echo $ParDir
    
por 17.10.2017 / 17:55

Tags