我一直在编写一个脚本,它会根据当前连接的SSID自动更改我的Macbook壁纸。它每隔30分钟就会选择一张新的壁纸。
长话短说,它的工作很好,但我试图创造“随机性”的假象,不允许脚本重复相同的壁纸太频繁。
当前拉墙纸的命令如下所示;
find -E -L ~/WallAware/A -type f -regex ".*\.(jpg|gif|png|jpeg)" \( -atime +5 -o -mtime -1 \) | ~/WallAware/gshuf -n 1
我误以为这会有用。
所以我要做的是:
我仍然在学习,我是记录我在吉顿的进展的乐趣。
发布于 2020-10-06 04:10:57
我要做以下几点:
#!/bin/sh
my_find() {
find -type f '(' -false $(for ext in png jpg gif jpeg; do echo "-o -name *.$ext"; done) ')' "$@"
}
if my_find -atime +5 -print -quit | grep .; then
B=$(my_find -atime +5 | shuf -n 1)
elif my_find -mtime -1 -print -quit | grep .; then
B=$(my_find -mtime -1 | shuf -n 1)
else
B=$(my_find | shuf -n 1)
fi
# then do your stuff with B
如果您在Mac上,可以随意地用shuf
代替gshuf
。我不确定Mac上的find
会有所有这些选项。-quit
是可选的。此外,还可以将扩展放入变量($exts
)中。
区别是什么?聚光灯没有指数/tmp,但它确实指数~。我非常肯定,您在这里看到的是聚光灯,在您更改了atime之后,读取该文件来索引它--这就将atime设置回了现在。
我相信这可能是你的问题。否则,阿提姆应该在达尔文身上发挥很好的作用。您可以将路径添加到异常,也可以使用Spotlight没有索引的路径(/wallpapers
可以工作)。
https://stackoverflow.com/questions/64218197
复制相似问题