LinuxでGNOMEの壁紙をかってに変えるやつ

#!/bin/bash

WALL_LIST="${HOME}/.rndwall"
KEY_FILE="/desktop/gnome/background/picture_filename"
KEY_OPTION="/desktop/gnome/background/picture_options"

case $1 in
    -a|--add)
        OPTION="zoom"
        if [ "$3" = "-t" ]; then
            if [ $4 == "wallpaper" \
                    -o $4 == "centered" \
                    -o $4 == "scaled" \
                    -o $4 == "stretched" \
                    -o $4 == "zoom" ]; then
                OPTION=$4
            else
                echo Usage: ${0##*/} "-a [filename]" \
                    "{-t [wallpaper|centered|scaled|stretched|zoom]}"
                exit 1
            fi
        fi
        FILENAME=`pwd`/$2
        TEMPFILE=tmp$$
        if [ -f "${FILENAME}" ]; then
            echo ${OPTION}:"${FILENAME}" >> ${WALL_LIST}
            sort ${WALL_LIST} | uniq > ${TEMPFILE}
            mv ${TEMPFILE} ${WALL_LIST}
        else
            echo "${0##*/}: file: $2: is wrong"
            exit 1
        fi
        ;;
    -ls|--list)
        i=1
        while read line; do
            echo "${i}) path:" ${line#*:}
            echo "   type:" ${line%%:*}
            i=`expr ${i} + 1`
        done < ${WALL_LIST}
        ;;
    -r|--remove)
        i=1
        TEMPFILE=tmp$$
        while read line; do
            if [ ${i} -ne $2 ]; then
                echo ${line} >> ${TEMPFILE}
            fi
            i=`expr ${i} + 1`
        done < ${WALL_LIST}
        mv ${TEMPFILE} ${WALL_LIST}
        ;;
    -u|--uzai|--uttousii)
        INTERVAL="90m"
        if [ $# -eq 2 ]; then
            if expr "$2" : "^[0-9][0-9]*[hms]$" > /dev/null; then
                INTERVAL=$2
            else
                echo "$2!!!"
                exit 1
            fi
        fi
        while [ 1 ]; do
            rndwall
            sleep ${INTERVAL}
        done
        ;;
    *)
        CUR_OPTION=`gconftool -g ${KEY_OPTION}`
        OPTION=${CUR_OPTION}
        CUR_WALL=`gconftool -g ${KEY_FILE}`
        FILENAME=${CUR_WALL}
        while [ "${FILENAME}" = "${CUR_WALL}" \
            -a "${OPTION}" = "${CUR_OPTION}" ]; do
            FILENAME=`sed -e "/^$/d" | sort -R $WALL_LIST | head -n 1`
            OPTION=${FILENAME%%:*}
            FILENAME=${FILENAME#*:}
        done < ${WALL_LIST}
        FILENAME=`echo ${FILENAME} | sed -e "s/ /\\ /g"`
        gconftool -s ${KEY_FILE} --type=string "${FILENAME}"
        gconftool -s ${KEY_OPTION} --type=string "${OPTION}"
        ;;
esac

シェルスクリプトはなんとなくかけるようになった!!実験自動化して効率あっぷまちがいなし!
/dev/nullってデブでぬるぬるやとおもってた