请问 随机打开图片的脚本如何写?
- 秘密花园
- 帖子: 57
- 注册时间: 2009-07-15 13:55
请问 随机打开图片的脚本如何写?
如题,想用eog每次随机打开某目录下的图片,虽然eog菜单中有此功能,但很想知道具体命令是什么,对于高手应该很简单吧,试了很久都没成功,期待高手经过!(比如 /home/kdelove/图片 目录下。)
- tenzu
- 论坛版主
- 帖子: 36924
- 注册时间: 2008-11-21 20:26
- 秘密花园
- 帖子: 57
- 注册时间: 2009-07-15 13:55
Re: 请问 随机打开图片的脚本如何写?
ls来的真早啊!
echo `expr $RANDOM % 999` 可以随机获得一个数字,加什么参数可以让它只输出三位数?有时候它会产生两位数来?我在仔细找找看,
期待神的降临!
echo `expr $RANDOM % 999` 可以随机获得一个数字,加什么参数可以让它只输出三位数?有时候它会产生两位数来?我在仔细找找看,
期待神的降临!
- bigsun
- 帖子: 301
- 注册时间: 2009-01-11 16:05
Re: 请问 随机打开图片的脚本如何写?
/usr/bin/fbsetbg中的代码:
代码: 全选
# random wallpaper code
if [ "$option" = random ]; then
# Lets make one thing clear...
wallpaperdir="$wallpaper"
if [ -z "$wallpaperdir" ]; then
message "No random wallpaper directory specified."
exit 1
fi
if [ -d "$wallpaperdir" ]; then
number_of_wallpapers=`ls "$wallpaperdir"|wc -l`
if find_it random_number; then
randomnumber=`random_number`
# some shells don't support $RANDOM
elif [ -z "$RANDOM" ]; then
randomnumber=`(echo $$ ;time ps; w ; date )2>&1 | cksum | cut -f1 -d' '`
else
randomnumber="$RANDOM"
fi
wallpapernumber=`expr $randomnumber % $number_of_wallpapers + 1`
#remember previous wallpaper
if [ ! "$remember" = false ]; then
remembercommand
fi
remember=false
#set -x
wallpaper="$wallpaperdir/`ls \"$wallpaperdir\"|sed -n ${wallpapernumber}p`"
option=$option2 # have to choose something...
else
message "Invalid random wallpaper directory specified."
exit 1
fi
fi
- 秘密花园
- 帖子: 57
- 注册时间: 2009-07-15 13:55
Re: 请问 随机打开图片的脚本如何写?
bigsun 写了:/usr/bin/fbsetbg中的代码:代码: 全选
# random wallpaper code if [ "$option" = random ]; then # Lets make one thing clear... wallpaperdir="$wallpaper" if [ -z "$wallpaperdir" ]; then message "No random wallpaper directory specified." exit 1 fi if [ -d "$wallpaperdir" ]; then number_of_wallpapers=`ls "$wallpaperdir"|wc -l` if find_it random_number; then randomnumber=`random_number` # some shells don't support $RANDOM elif [ -z "$RANDOM" ]; then randomnumber=`(echo $$ ;time ps; w ; date )2>&1 | cksum | cut -f1 -d' '` else randomnumber="$RANDOM" fi wallpapernumber=`expr $randomnumber % $number_of_wallpapers + 1` #remember previous wallpaper if [ ! "$remember" = false ]; then remembercommand fi remember=false #set -x wallpaper="$wallpaperdir/`ls \"$wallpaperdir\"|sed -n ${wallpapernumber}p`" option=$option2 # have to choose something... else message "Invalid random wallpaper directory specified." exit 1 fi fi
谢谢ls,我只是想用 eog 每次随机打开图片目录下的一个图片,而不用作为壁纸的功能,简单的说就是做一个随机选择号码的彩票模拟器,打开的图片就是每个数字的png号码。脚本如何来写?
- 附件
-
- 0.png (38.14 KiB) 查看 1349 次
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 请问 随机打开图片的脚本如何写?
1 #!/bin/bash
2
3 v_picture_count=0;
4
5 for i in ~/Pictures/share/*;do #假设~/Pictures/share/里全是图片。
6 ((v_picture_count++)); #统计图片数。
7 a_picture_name[$v_picture_count]=$i; #记录图片名。
8 if [[ $v_picture_count -gt 99999 ]];then #最多十万图片。
9 break;
10 fi
11 done
12
13 eog -f ${a_picture_name[$(($RANDOM%$v_picture_count+1))]}; #随机显示一图片。
2
3 v_picture_count=0;
4
5 for i in ~/Pictures/share/*;do #假设~/Pictures/share/里全是图片。
6 ((v_picture_count++)); #统计图片数。
7 a_picture_name[$v_picture_count]=$i; #记录图片名。
8 if [[ $v_picture_count -gt 99999 ]];then #最多十万图片。
9 break;
10 fi
11 done
12
13 eog -f ${a_picture_name[$(($RANDOM%$v_picture_count+1))]}; #随机显示一图片。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 请问 随机打开图片的脚本如何写?
1 #如果图片名都是000.jpg格式:
2
3 #!/bin/bash
4
5 v_picture_count=0;
6
7 for i in ~/Pictures/share/*;do #假设~/Pictures/share/里全是图片。
8 ((v_picture_count++)); #统计图片数。
9 a_picture_name[$v_picture_count]=$i; #记录图片名。
10 if [[ $v_picture_count -gt 999 ]];then #最多一千(000.jpg至999.jpg)图片。
11 break;
12 fi
13 done
14
15 v_random=$(($RANDOM%$v_picture_count+1)); #产生随机数。
16 v_number=${a_picture_name[$v_random]}; #获取图片名。
17 v_number=${v_number##*/};
18 v_number=${v_number%%.*};
19 v_number=${v_number##*0};
20 v_number=${v_number:-0};
21 echo 幸运数字是: $v_number; #显示相关数字。
22 sleep 3;
23 eog -f ${a_picture_name[$v_random]}; #显示图片。
~
~
~
~
"eograndom.sh" 23L, 696C 1,1 All
2
3 #!/bin/bash
4
5 v_picture_count=0;
6
7 for i in ~/Pictures/share/*;do #假设~/Pictures/share/里全是图片。
8 ((v_picture_count++)); #统计图片数。
9 a_picture_name[$v_picture_count]=$i; #记录图片名。
10 if [[ $v_picture_count -gt 999 ]];then #最多一千(000.jpg至999.jpg)图片。
11 break;
12 fi
13 done
14
15 v_random=$(($RANDOM%$v_picture_count+1)); #产生随机数。
16 v_number=${a_picture_name[$v_random]}; #获取图片名。
17 v_number=${v_number##*/};
18 v_number=${v_number%%.*};
19 v_number=${v_number##*0};
20 v_number=${v_number:-0};
21 echo 幸运数字是: $v_number; #显示相关数字。
22 sleep 3;
23 eog -f ${a_picture_name[$v_random]}; #显示图片。
~
~
~
~
"eograndom.sh" 23L, 696C 1,1 All
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
- 秘密花园
- 帖子: 57
- 注册时间: 2009-07-15 13:55
Re: 请问 随机打开图片的脚本如何写?
fnan 写了:1 #如果图片名都是000.jpg格式:
2
3 #!/bin/bash
4
5 v_picture_count=0;
6
7 for i in ~/Pictures/share/*;do #假设~/Pictures/share/里全是图片。
8 ((v_picture_count++)); #统计图片数。
9 a_picture_name[$v_picture_count]=$i; #记录图片名。
10 if [[ $v_picture_count -gt 999 ]];then #最多一千(000.jpg至999.jpg)图片。
11 break;
12 fi
13 done
14
15 v_random=$(($RANDOM%$v_picture_count+1)); #产生随机数。
16 v_number=${a_picture_name[$v_random]}; #获取图片名。
17 v_number=${v_number##*/};
18 v_number=${v_number%%.*};
19 v_number=${v_number##*0};
20 v_number=${v_number:-0};
21 echo 幸运数字是: $v_number; #显示相关数字。
22 sleep 3;
23 eog -f ${a_picture_name[$v_random]}; #显示图片。
~
~
~
~
"eograndom.sh" 23L, 696C 1,1 All
一直没时间来,谢谢楼上大侠,收下了。