Você está tornando isso mais difícil do que precisa ser.
Primeiro, não há motivo para que seu script (como postado) precise ser executado como root.
Em segundo lugar, você está usando / opt em vez de / usr / local. Por padrão, o ubuntu usa / usr / local e / usr / local está no caminho padrão.
E em terceiro lugar, você está usando locais ambíguos, como ..e pwd e ~. É melhor usar o caminho completo e os locais padrão.
Por que não usar o $ HOME?
[[-d "$ HOME" /. D3GO]] || mkdir "$ HOME" /. D3GO
A maioria dos seus outros problemas são resolvidos com um arquivo de criação decente ou um .deb bem empacotado. Se o seu script depende de coisas fora do script, arquivos ou .png, empacote-o em um .deb ou escreva um arquivo de criação para que as coisas que você precisa sejam instaladas em locais padrão / usr / local ou no sistema, se desejar.
Se você estiver instalando algo, deverá fornecer um arquivo e deverá escrever seu script em relação ao arquivo que você fornece.
Assim, o seu arquivo pode ser FOO e dentro você teria
FOO / arquivos FOO / img FOO / Your_script
Então "Your_Script" pode apenas chamar "cp ./file/file_to_install / where / to / install"
Para ser honesto, a maior parte de sua instalação (coisas "cp pwd") é melhor tratada com
-
Embalagem correta em um .deb
-
Um arquivo de criação.
Qualquer uma das opções acima possui inúmeras vantagens, incluindo, entre outras, facilidade de instalação, facilidade de remoção e instalação de arquivos em locais padrão e conhecidos.