Como encontrar o diretório onde um script Bash está localizado dentro do script

Como Encontrar O Diretorio Onde Um Script Bash Esta Localizado Dentro Do Script



Ao trabalhar com scripts bash, é útil saber a localização do script. Isso pode ser especialmente útil ao trabalhar com caminhos de arquivo relativos ou ao tentar executar outros scripts ou comandos de dentro do script. Neste artigo, veremos algumas maneiras diferentes de determinar o diretório de um script bash dentro do próprio script.

Como encontrar o diretório onde um script Bash está localizado dentro do script

Durante o script bash, você pode exigir a localização do script para automatizar várias tarefas. Existem dois tipos de caminhos no Linux:

  • Caminho dos parentes: Relative é o diretório de trabalho atual.
  • Caminho Absoluto: Este é o caminho completo do diretório e arquivos.

Uma das maneiras mais comuns de determinar a localização de um script bash é usar o pwd comando. O pwd comando ( imprimir diretório de trabalho) mostrará o diretório atual.







Então, em muitas situações simplesmente usando pwd O comando não funciona, pois fornece apenas o caminho do diretório atualmente em funcionamento.



Por exemplo, se o script estiver no Transferências diretório e sendo executado a partir do Área de Trabalho então a saída conterá o /home/usr/Desktop não a localização do arquivo de script bash que é /home/usr/Downloads .



Este tutorial é sobre como obter o caminho do diretório no qual o arquivo de script bash está localizado dentro do script.





Como obter o caminho do diretório onde o arquivo de script Bash está localizado

Outra maneira de determinar o diretório de um script Bash é usar o dirname comando. O dirname O comando usa um caminho de arquivo como argumento e retorna a parte do diretório do caminho.

Usar dirname comando para determinar o diretório de um script, você chamaria o comando com o caminho até os últimos componentes sem barra para o script como o argumento.



Para mais detalhes sobre dirname execute os seguintes comandos no terminal:

$ homem dirname

Apenas dirname não funcionará, precisamos de outro comando que seja link de leitura . O link de leitura O comando print resolveu o link simbólico. Obtenha mais informações sobre este comando executando:

$ homem link de leitura

Agora, criar um roteiro :

$ sudo nano meuScript.sh

E digite:

#!/bin/bash

eco 'O caminho do script bash é $(dirname -- '$(readlink -f – '$0') ' ; ) ';

Para executar o script use:

$ bash meuScript.sh

Vamos mudar o diretório e ver qual é a saída:

Observação: Em um caso, o script acima não funcionará se o arquivo for originado em vez de executado, como pode ser visto na seguinte saída:

A saída é /home/sam/Desktop Considerando que o arquivo de script está presente no /home/sam diretório.

Conclusão

Em conclusão, existem várias maneiras de determinar o diretório de um script bash de dentro do próprio script. O dirname juntamente com link de leitura O utilitário pode ser usado para determinar o diretório de um script. No entanto, basta usar pwd O comando não funciona, pois fornece apenas o diretório atualmente em funcionamento.