# This will cd into the directory in which the .command file exists
cd "$(dirname "$0")"
Por outro lado ...
# This will define an environment variable that contains the full absolute path
#+ to the directory in which the .command file is kept, and then will cd into
#+ that directory
ABSPATH="$(cd "$(dirname "$0")" && pwd)"
cd "$ABSPATH"
Por que todas as aspas duplas?
Sem eles, as coisas quebram quando o usuário tem espaços no caminho para o projeto. Também, provavelmente óbvio, mas isso também será interrompido se o usuário não puder fazer o cd no diretório do projeto.
Por que $ (...) ao invés de '...'?
Essa primeira sintaxe é mais recente e preferida em relação à segunda. Além disso, é mais fácil de ver. Se você acha que os parentes correspondentes são irritantes, tente combinar os backticks - especialmente quando há aspas simples intercaladas entre eles. Ambos fazem a mesma coisa; bifurque uma subcamada e execute o comando interno dentro dessa subcamada.