我有一个脚本可以截取屏幕截图并将其保存到 GDrive 连接的文件夹中:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
SHELL=/bin/bash
#This takes and stores the picture:
gnome-screenshot -f /run/user/1000/gvfs/google-drive:host=gmail.com,user=sequestranaut/0AFiS_dr3-R8XUk9PVA/1g82k8rd0L54vmYTHzrqoR_4Ys7Rg_1w1/$(date '+%e-%m-%a-%T')
#This clears the folder:
if [ $(ls /run/user/1000/gvfs/google-drive:host=gmail.com,user=sequestranaut/0AFiS_dr3-R8XUk9PVA/1g82k8rd0L54vmYTHzrqoR_4Ys7Rg_1w1/* 2/dev/null | wc -l) -gt 799 ]
then rm -f /run/user/1000/gvfs/google-drive:host=gmail.com,user=sequestranaut/0AFiS_dr3-R8XUk9PVA/1g82k8rd0L54vmYTHzrqoR_4Ys7Rg_1w1/*
fi
我已经测试了该脚本并验证了如果从终端正常启动的话它可以工作。运行它的退出代码为零,从 shell 运行时它的行为符合预期,所有用户都存在执行权限,但由于某种原因我无法让它通过 crontab 运行:
*/1 * * * /home/iain/Scripts/ScreenshotScript.sh
*/1 * * * * /home/iain/Scripts/test.sh
上面列出的另一个 cronjob 工作得很好。它将 date 命令的输出附加到我的桌面上的文本文件中,没有任何问题,所以我认为这不是 crontab 本身的问题。
每次使用 ScreenshotScript 时,我都会收到一条错误消息:
(gnome-screenshot:110460): GLib-GIO-CRITICAL **: 15:07:01.783:
g_dbus_connection_call_sync_internal: assertion 'G_IS_DBUS_CONNECTION
(connection)' failed
** Message: 15:07:01.783: Unable to use GNOME Shell's builtin screenshot interface, resorting to fallback X11.
我认为问题出在 $DISPLAY 变量上,所以我通过将其放在脚本的顶部来更改它:
if [[ -z "$DISPLAY" ]]
then
DISPLAY=":0"
export DISPLAY
fi
但这并没有改变任何事情。
此外,我尝试在 X11 而不是 Wayland(我当前的显示服务器)中运行脚本,但仍然遇到相同的错误。
有人能指出我正确的方向吗?