Sempre que suas configurações pessoais forem carregadas, dependendo do sistema operacional e da preferência, você precisará source desse arquivo no script para que funcione como se estivesse sendo executado no terminal.
source ou . é um comando que funciona como import em outras linguagens de script / programação. Observe também que, se você usar . em vez de source , deverá haver um espaço entre o . e o caminho para o perfil que você está terceirizando:
. /home/username/.profile
No início do seu script, depois de #!/bin/bash , basta adicionar source /home/yourusername/.profile (ou .bashrc ou o que você estiver usando para carregar suas configurações).
Verifique novamente as permissões / propriedade do arquivo e verifique se ele está em execução no seu crontab pessoal e não no crontab do root, o que estragaria tudo se você estivesse tentando executá-lo como um usuário normal.
Além disso, como eu disse no meu comentário, nunca é demais incluir caminhos absolutos em scripts que estão sendo executados via cron. Acredito que você tenha várias instâncias referenciando ~/something ou ./somescript . Por exemplo, em vez de cd ~/Scripts , use cd /home/username/Scripts , para que não haja erro de onde esse diretório está localizado.
Esse é o ponto de source -ing seu .profile , porque normalmente é onde a variável $HOME ( ~ ) é definida. A maneira de evitar qualquer discrepância, é simplesmente incluir caminhos absolutos para diretórios e scripts quando você sabe que os trabalhos serão executados via cron.