Como posso executar um script bash de um caminho absoluto versus um caminho relativo?

0

Eu tenho um arquivo no meu diretório raiz chamado bash_scripts e dentro dele eu tenho um arquivo chamado create_py_dir.sh . No momento, o único comando no script de shell é pwd , que estou usando apenas para garantir que esteja funcionando corretamente. A estrutura do diretório é mostrada abaixo;

desktop
|
myname(i.e. root directory)
    |
    bash_scripts
        |
        create_py_dir.sh

Se eu cd para o mesmo diretório que os scripts e executar um comando pwd , ele informará que o arquivo está no diretório /Users/myname/bash_scripts . Então vamos dizer que eu volto para o diretório raiz e subo um diretório para a área de trabalho via cd ../desktop e a partir daí eu executo o script via caminho relativo com ./../bash_scripts/create_py_dir.sh , os scripts funcionam muito bem. No entanto, se eu tentar executá-lo por meio de um caminho absoluto com ./Users/myname/bash_scripts/create_py_dir.sh , recebo o seguinte erro, ./Users/myname/bash_scripts/create_py_dir.sh: No such file or directory . Acho que tenho um problema fundamental de compreensão sobre como executar scripts shell a partir de caminhos absolutos.

    
por Jon Kennedy 13.11.2018 / 17:00

1 resposta

3

./Users/myname/bash_scripts/create_py_dir.sh não é um caminho absoluto.

Um . é uma referência à pasta atual.

Este seria um exemplo de um caminho absoluto: /Users/myname/bash_scripts/create_py_dir.sh

(assumindo que o diretório Users exista no nível superior do sistema de arquivos)

    
por 13.11.2018 / 17:02