web-dev-qa-db-ja.com

bashスクリプトでのユーザーのホームパス

私は毎日cronジョブとして実行されるbashスクリプトを書いています。とても基本的で、毎日壁紙を変えたいと思っていました。私は仲間とミント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;
3
tijko

$ HOMEはcronで設定されていないので、これをスクリプトに入れて、代わりにcronジョブに実行させます。

(そのスクリプトの実行ビットをchmod + x XXで設定することを忘れないでください)

#!/bin/bash

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

またはあなたのcronjobで、

HOME="$(getent passwd $USER | awk -F ':' '{print $6}')"
homedir=${HOME}/Pictures/daily
5
daisy