Caminho inicial dos usuários em um script bash

3

Estou escrevendo um script bash que será executado como um cron job todos os dias. Muito básico, eu estava querendo mudar o papel de parede diariamente. Eu tenho mint-14 com mate.

A coisa na qual estou me metendo agora é que quero que o caminho de origem do usuário seja detectado automaticamente. Se eu não fizer isso, eu teria que alterá-lo para todos os outros usuários que executam o script.

Até agora eu tentei:

homedir=${HOME}/Pictures/daily

mateconftool-2 -t string -s /desktop/mate/background/picture_filename $homedir;

Isso não funciona, mas

echo $homedir

Imprime o caminho correto?

EDITAR:

Quando tentei ~user como @vonbrand estava sugerindo que não há diferença.

mateconftool-2 -t string -s /desktop/mate/background/picture_filename ~user/Pictures/daily;
    
por tijko 03.03.2013 / 00:29

1 resposta

5

$ HOME não está definido no cron, então coloque isso em um script e deixe seu trabalho cron executar isso,

(Lembre-se de definir o bit de execução para esse script com chmod + x XX)

#!/bin/bash

mateconftool-2 -t string -s /desktop/mate/background/picture_filename ~/Pictures/daily

Ou no seu cronjob,

HOME="$(getent passwd $USER | awk -F ':' '{print $6}')"
homedir=${HOME}/Pictures/daily
    
por 03.03.2013 / 01:57