Quando você executa um script bash , todos os comandos são executados no diretório em que o script é chamado, incluindo pwd . Por exemplo:
#!/bin/bash
pwd
Se você executar isso a partir de /whatever/path , ele exibirá /whatever/path , não importa onde o script seja colocado.
Se você quiser operar em arquivos no diretório de onde você está executando o script, você pode omitir pwd assim:
chmod +x D3GO
Isso será interpretado como chmod +x /whatever/path/D3GO se você executá-lo a partir de /whatever/path , não importando onde o script seja realmente colocado.
Para operar no diretório em que o script está localizado, você pode usar a variável $BASH_SOURCE . É uma matriz e o primeiro elemento é o caminho para o script em si (por exemplo, /script/directory/myscript.sh ). Você pode combinar isso com o comando dirname para obter apenas o diretório:
chmod +x 'dirname ${BASH_SOURCE[0]}'/D3GO
Isso procurará D3GO no diretório em que esse script é colocado, em vez de ser invocado a partir dele. (Obrigado ao @muru por apontar meu erro.)