#! /bin/bash
echo I am located in $(dirname "$0")
cd "$(dirname "$0")"
Observe que isso pode ser um caminho relativo.
Um executável pode saber onde está armazenado?
Para meu projeto de código aberto, escrevi um pequeno script para automatizar algumas operações. O script está na raiz do projeto e executa suas tarefas em todos os arquivos abaixo. As pessoas têm os arquivos de projeto em seus próprios computadores, em seu caminho favorito, portanto, não posso simplesmente codificar cd /home/nico/projects/theproject
no início do script. Eu não quero forçar as pessoas a cd
manualmente para o diretório do projeto toda vez antes de executar qualquer um. Eu gostaria que as pessoas pudessem usar um atalho do Gnome para iniciar o script. Para fazer isso, o script precisa saber onde está armazenado.
#! /bin/bash
w=$(cd "$(dirname "$0")" && echo "$PWD")
echo I am located in "$w"
Para construir a resposta do cjm, o acima irá absolutizar o caminho (usando um sub-shell para cd
there e echo
the $PWD
)
Tags directory executable