(привык к ненависному паскалю, с кривым компилятором делфи)
А это обязательно писать
это так сказать оправдание временных затрат, да и что либо сложнее чем вывести "привет" в дельфе сложно сделать(я конечно утрирую и имею ввиду написание нечто стоящяго)
Пользователь решил продолжить мысль 29 Марта 2011, 21:52:19:
вот, написал, более красиво, меньше странных и непонятных вещей, названия переменных говорящие, поэтому нет коментариев, функционал больше(правда на баги не проверил) и работет ток с файлами *.jpg
#!/bin/bash
user_dir=`echo $USER`
menu_item_1="Время показа(мин.): "
menu_value_1="5"
menu_item_2="Время перехода(сек.): "
menu_value_2="10"
menu_item_3="Директория: "
menu_value_3="/usr/share/backgrounds/"
menu_item_4="Директория для файла запуска: "
menu_value_4="/home/""$user_dir""/Картинки/.backgrounds/"
menu_item_5="Имя файла запуска: "
menu_value_5="slide show"
function time_of_show
{
menu_value_1=$(zenity --entry --width="415" --height="60" --title "Введите время(в минутах)" --text "Введите время(в минутах)")
}
function transition_time
{
menu_value_2=$(zenity --entry --width="415" --height="60" --title "Введите время(в секундах)" --text "Введите время(в секундах)")
}
function directory
{
menu_value_3=$(zenity --file-selection --directory --title "Выберите директорию с изображениями" --text "Выберите директорию с изображениями")
}
function Directory_for_the_file_of_start
{
menu_value_4=$(zenity --file-selection --directory --title "Выберите директорию для файла запуска" --text "Выберите директорию для файла запуска")
}
function file_of_start_name
{
menu_value_5=$(zenity --entry --width="415" --height="60" --title "Введите имя файла" --text "Введите имя файла")
}
function main
{
type=$(zenity --window-icon="/usr/share/icons/gnome/32x32/apps/preferences-desktop-wallpaper.png" --list --width="650" --height="260" --title "Анимированные обои" --text "Установите значения" --column "Опции:" --column "Значения:" "$menu_item_1" "$menu_value_1" "$menu_item_2" "$menu_value_2" "$menu_item_3" "$menu_value_3" "$menu_item_4" "$menu_value_4" "$menu_item_5" "$menu_value_5" )
if [ "$type" = "$menu_item_1" ]; then
time_of_show
main
fi
if [ "$type" = "$menu_item_2" ]; then
transition_time
main
fi
if [ "$type" = "$menu_item_3" ]; then
directory
main
fi
if [ "$type" = "$menu_item_4" ]; then
Directory_for_the_file_of_start
main
fi
if [ "$type" = "$menu_item_5" ]; then
file_of_start_name
main
fi
}
main
#if [ $REPLY = "y" ]; then
file_xml="$menu_value_4""$menu_value_5"".xml"
mkdir "$menu_value_4"
rm "$file_xml"
touch "$file_xml"
rm "$menu_value_4""picture_list"
touch "$menu_value_4""picture_list"
echo '<background>' >> "$file_xml"
echo ' <starttime>' >> "$file_xml"
echo ' <year>'`expr $RANDOM % 3000 + 1`'</year>' >> "$file_xml"
echo ' <month>'`expr $RANDOM % 11 + 1`'</month>' >> "$file_xml"
echo ' <day>'`expr $RANDOM % 30 + 1`'</day>' >> "$file_xml"
echo ' <hour>'`expr $RANDOM % 59 + 1`'</hour>' >> "$file_xml"
echo ' <minute>'`expr $RANDOM % 59 + 1`'</minute>' >> "$file_xml"
echo ' <second>'`expr $RANDOM % 59 + 1`'</second>' >> "$file_xml"
echo ' </starttime>' >> "$file_xml"
echo '<!-- This animation will start at midnight. -->' >> "$file_xml"
image_pred=""
find "$menu_value_3" -iname \*.jpg | while read
do
if [ "$image_pred" = "" ]; then
image_pred=$REPLY
continue
fi
echo ' <static>' >> "$file_xml"
echo ' <duration>'`expr $menu_value_1 '*' 60`'</duration>' >> "$file_xml"
echo ' <file>'"$image_pred"'</file>' >> "$file_xml"
echo ' </static>' >> "$file_xml"
echo ' <transition>' >> "$file_xml"
echo ' <duration>'"$menu_value_2"'</duration>' >> "$file_xml"
echo ' <from>'"$image_pred"'</from>' >> "$file_xml"
echo ' <to>'"$REPLY"'</to>' >> "$file_xml"
echo ' </transition>' >> "$file_xml"
image_pred=$REPLY
done
echo ' <static>' >> "$file_xml"
echo ' <duration>'`expr $menu_value_1 '*' 60`'</duration>' >> "$file_xml"
echo ' <file>'"$menu_value_3"`tail -1 "$menu_value_4"".picture_list"`'</file>' >> "$file_xml"
echo ' </static>' >> "$file_xml"
echo ' <transition>' >> "$file_xml"
echo ' <duration>'"$menu_value_2"'</duration>' >> "$file_xml"
echo ' <from>'"$menu_value_3"`tail -1 "$menu_value_4"".picture_list"`'</from>' >> "$file_xml"
echo ' <to>'"$menu_value_3"`head -1 "$menu_value_4"".picture_list"`'</to>' >> "$file_xml"
echo ' </transition>' >> "$file_xml"
echo '</background>' >> "$file_xml"
rm "$menu_value_4"".picture_list"
gconftool-2 -s /desktop/gnome/background/picture_filename -t string "$file_xml"
а теперь воросы которые у меня возникли-как в
find установить больше масок, или применить аналогичное действие
-как перезаписать / создать фаил (если нет то создать, иначе перезаписать) одной процедурой
-как записать имена всех файлов с указанными расширениями(тоесть их надо указать несколько *.jpg *.jpeg *.png) в фаил
-как циклом пройтись по строкам в файле, на каждой итерации получая очередную строку
-как отрезать от строки кусок например есть строка /1/,,,/10/ хочу получить строку /1/.../6/ тоесть получить путь до каталога на 4 уровня ниже, желательно список стандартных процедур для работы со строками(если таковые имеются)