我写了一个小的Bash脚本,使文件夹中的图像成为墙纸:
for f in *.jpg
do
gsettings set org.gnome.desktop.background picture-uri file:$f
Run Code Online (Sandbox Code Playgroud)
错误是:
./wall.sh: line 6: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
我的代码错了吗?有没有办法使用 Bash 脚本从 Internet 设置壁纸?
您需要以“完成”结束它,例如:
for f in *.jpg
do
gsettings set org.gnome.desktop.background picture-uri "file:$f"
done
Run Code Online (Sandbox Code Playgroud)
但我认为最好的方法是这样的:
for f in /path/to/dir/*.jpg
do
gsettings set org.gnome.desktop.background picture-uri "file://$f"
done
Run Code Online (Sandbox Code Playgroud)
好的,我编辑了第二个代码。试试这个。
如果你想从网上随机获取壁纸,可以执行以下代码:
#!/bin/bash
while true
do
img=http://www.wallpaperup.com/wallpapers/download/$RANDOM/1920/1080
wget -O /tmp/1080.jpg $img
gsettings set org.gnome.desktop.background picture-uri "file:///tmp/1080.jpg"
sleep 60
done
Run Code Online (Sandbox Code Playgroud)
此脚本将每 60 秒更改一次壁纸。
在 bash 中,for块以结束done,如下所示:
for f in *.jpg
do
gsettings set org.gnome.desktop.background picture-uri "file:$f"
done
Run Code Online (Sandbox Code Playgroud)
另外,在 周围加上双引号$f,以防某些文件名包含空格。
请注意,我认为您可以通过以下方式更轻松地实现您想要实现的目标find:
find $imageDir -maxdepth 1 -type f -name "*.jpg" -exec gsettings set org.gnome.desktop.background picture-uri file:{} \;
Run Code Online (Sandbox Code Playgroud)
替换$imageDir为您要搜索的文件夹的路径。或者,如果你想在本地目录中运行命令,你可以这样做:
find -maxdepth 1 -type f -name "*.jpg" -exec gsettings set org.gnome.desktop.background picture-uri file:$PWD/{} \;
Run Code Online (Sandbox Code Playgroud)
感谢Gilles提醒我关于$PWD.
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |