LINUX.ORG.RU

[Bash]Скрипт для автоматической смены картинок на десктопе

 


0

0
Вот собственно сабж:

#!/bin/bash
export DIR='/home/gln0fate/wallpapers'
export NUMBER=$RANDOM
export TOTAL=0
for f in 'ls $DIR'
do
let "TOTAL += 1"
done
let "NUMBER %= TOTAL"
export CURRENT=0
for f in 'ls $DIR'
do
if [ $CURRENT = $NUMBER ]
then
/usr/bin/gconftool-2 -t string
-s /desktop/gnome/background/picture_filename $DIR/$f
break
fi
let "CURRENT += 1"
done


Пытаюсь запустить:

gln0fate@debian:~/iDev/scripts$ sh ./change_wallpaper
Значение не установлено для ключа: "$DIR"


Где грабли? Я только учу bash.
Вот этот подсчет количества файлов

for f in 'ls $DIR' 
do 
let "TOTAL += 1" 
done

можно записать короче: TOTAL=`ls | wc -l`

Выбор файла: ls | sed -n ${NUMBER}p
Begemoth ★★★★★
()
И еще: export тут не нужен
Begemoth ★★★★★
()
ЗЗЫ: твой скрипт не будет работать если в каталоге есть файлы с именами, содержащими пробелы.
Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth
> ЗЗЫ: твой скрипт не будет работать если в каталоге есть файлы с именами, содержащими пробелы.

почему?

gln0fate ★★
() автор топика
Ответ на: комментарий от gln0fate
> почему?

жизнь таит еще много сюрпризов, Маугли.

anonymous
()
Ответ на: комментарий от gln0fate
По той же причине, что позволяет корректно работать команде rm * (заметь у нее не один параметр)
Begemoth ★★★★★
()
Ответ на: комментарий от anonymous
> Автор сотри все и сделай как dilmah написал — в одну строку.

ну картинку я выбрал, а как ее установить?

gln0fate ★★
() автор топика
Ответ на: комментарий от alex_custov
> 'ls $DIR' => `ls $DIR`

это не будет работать, если директория или имя файла картинки содержит пробелы.
cobold ★★★★★
()
Вместе с Fluxbox идёт программка fbsetbg, которая позволяет устанавливать и менять обои на рабочем столе, в т.ч. и выбирая случайные из каталога. Это так, к слову, авось кому будет полезно.
php-coder ★★★★★
()
Ответ на: комментарий от anonymous
>как же ты достал__долбодятел -- проблёвок а не программер __проблёвок__

нее -- хуже -- он СЦУКО=КРЫСА ;)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.