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.