É verdade usando o cd somedir, mas em vez de adicioná-lo ao promotionscript, ele deve ser adicionado ao cronjob para evitar o código, como:
0 3 * * 0-6 cd somedir;promotionscript
E .. o operador funcionará como esperado no script de promoções.
meu cronjob tem esta aparência:
0 3 * * 0-6 somedir/promotionscript
Mas o promotionscript está realmente chamando outro arquivo "config" localizado na pasta pai do somedir.
#promotionscript
#!/bin/csh
source ../config
Mas eu tenho config: Nenhum arquivo ou diretório. Então eu suponho que o cronjob não está rodando no somedir, então ele não sabe que algum dia uma vez começou a rodar o promotionscript. Como fazer o cronjob localizar a configuração na pasta pai.
Observe que uma solução possível é que posso adicionar o caminho completo à configuração:
source fullpath/config
Mas existe uma maneira de o cronjob reconhecer o caminho completo diretamente?
É verdade usando o cd somedir, mas em vez de adicioná-lo ao promotionscript, ele deve ser adicionado ao cronjob para evitar o código, como:
0 3 * * 0-6 cd somedir;promotionscript
E .. o operador funcionará como esperado no script de promoções.
Obtenha o dirname
do nome do shell ou script de shell ( $0
).
Então faça:
source 'dirname $0'/../config
O Cron executa comandos no seu diretório pessoal. Você pode adicionar cd somedir
no seu script de promoções.
Tags csh shell-script