Obtém o diretório de trabalho do terminal, não o script

1

Eu tenho um script que eu quero criar arquivos, dependendo do diretório em que o usuário (eu) está (ele pode ser chamado na linha de comando). No entanto, ele cria o arquivo no mesmo diretório em que o script está localizado. Como posso alterar o script para que ele crie o arquivo no mesmo diretório do terminal?

Nota: O comando pwd quando executado dentro do script irá imprimir o diretório de trabalho do script, não o terminal.

    
por KILL3RTACO 02.11.2012 / 04:35

1 resposta

4

Você está alterando diretórios dentro do seu script? No bash e no script, acho que o pwd na verdade deveria estar retornando o diretório de trabalho daquele usuário, não a localização do próprio script.

por exemplo,

echo "touch make_a_file" > make_a_file.sh
~/ $ ls
make_a_file.sh
~/ $ mkdir -p make/some/directories
~/ $ cd make/some/directories
~/make/some/directories $ sh ../../../make_a_file.sh
~/make/some/directories $ ls
make_a_file

como você pode ver aqui, do ubuntu 12.10 com a versão atual do bash, eu criei um script, executei-o a partir de um diretório diferente (de dentro do caminho make / some / directory), e o novo arquivo foi criado dentro do diretório em que eu estava ... não a localização do script. Tenha certeza de que você não está se movendo em qualquer lugar do seu script ou mostre algum código para ver o que está acontecendo.

    
por jxn 02.11.2012 / 05:01