我正在编写一个 bash 脚本,它将每天作为 cron 作业运行。非常基本,我想每天更换壁纸。我和伙伴有mint-14。
我现在遇到的问题是,我希望自动检测用户的主路径。如果我不这样做,我将不得不为运行该脚本的所有其他用户更改它。
到目前为止我已经尝试过:
homedir=${HOME}/Pictures/daily
mateconftool-2 -t string -s /desktop/mate/background/picture_filename $homedir;
这行不通,但是,
echo $homedir
打印出正确的路径?
编辑:
当我~user
像@vonbrand 一样尝试时,建议没有区别。
mateconftool-2 -t string -s /desktop/mate/background/picture_filename ~user/Pictures/daily;
答案1
$HOME 未在 cron 中设置,因此请将其放入脚本中,然后让您的 cron 作业执行它,
(记住使用 chmod +x XX 设置该脚本的执行位)
#!/bin/bash
mateconftool-2 -t string -s /desktop/mate/background/picture_filename ~/Pictures/daily
或者在你的定时任务中,
HOME="$(getent passwd $USER | awk -F ':' '{print $6}')"
homedir=${HOME}/Pictures/daily