首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有scrot区域的Bash脚本不工作

带有scrot区域的Bash脚本不工作
EN

Stack Overflow用户
提问于 2016-02-19 07:56:22
回答 2查看 2.5K关注 0票数 3

我创建了一个bash脚本,用于交互式屏幕捕获,另一个用于窗口捕获。我在Linux中用键盘快捷键链接到这些文件。窗口捕获脚本的工作没有问题:

代码语言:javascript
复制
#!/bin/sh  
scrot -u 'ScreenShot_%Y-%m-%d_at_%I:%M:%S-%p.png' -e 'mv $f ~/Pictures/scrot-screenshots'

但是用于区域捕获的脚本(用户使用鼠标拖动选择区域)无法工作,即使命令在终端中工作:

代码语言:javascript
复制
#!/bin/sh  
scrot -s 'ScreenShot_%Y-%m-%d_at_%I:%M:%S-%p.png' -e 'mv $f ~/Pictures/scrot-screenshots'

我做错了什么?或者一个更好的问题是,是什么阻止了脚本让我选择屏幕上的一个区域?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-19 11:10:27

为了让它正常工作,我添加了一个延迟,以便让绞盘资源时间(2/10秒)加载:

代码语言:javascript
复制
#!/bin/sh
sleep 0.2 ; scrot -s 'ScreenShot_%Y-%m-%d_at_%I:%M:%S-%p.png' -e 'mv $f ~/Pictures/scrot-screenshots'

我如何找到解决方案:

我不知道如何将错误输出到文件,因为从终端运行我的脚本不会产生任何错误。双击脚本运行正常,终端中的script > file 2>&1没有给出任何错误,因为它正确地从终端运行。只有当我尝试使用连接到原始post的第二个命令的键盘快捷键(键绑定)时,我才会出错。为了查看最终导致上述解决方案的错误,我下载了:

代码语言:javascript
复制
`apt-get install xbindkeys` && `apt-get install gconf-editor`

我运行了gconf编辑器,并使用Run来执行脚本,就像使用附加到终端输出的keybindings...but一样。这给了我需要看到的错误输出:

代码语言:javascript
复制
giblib error: couldn't grab pointer:Resource temporarily unavailable

这给我带来了这篇文章:https://bbs.archlinux.org/viewtopic.php?id=86507的贴士。

票数 8
EN

Stack Overflow用户

发布于 2018-08-10 14:47:38

对于jtlindsey的回答对于解决这个问题没有用的人来说:

代码语言:javascript
复制
giblib error: couldn't grab pointer:Resource temporarily unavailable

另一个解决方案可能是:在调用scrot之前,运行以下命令:

代码语言:javascript
复制
xdotool key XF86Ungrab

这应该会释放指针,scrot命令应该在指针之后工作。注意:source声明在执行以前的xdotool命令之前,可能需要执行以下命令:

代码语言:javascript
复制
setxkbmap -option grab:break_actions
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35500163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档