我正在尝试编写一个简单的bash脚本,其作用类似于jomo/imgur-screenshot,但使用了ziggi/zimg-host源代码。上传图片/通过curl + scrot + xclip发布帖子请求
基本上imgur-screenshot所做的是当脚本初始化时,它打开scrot -select
(-select选项交互式地用鼠标选择一个窗口或矩形)。然后,一旦你截取了定义区域的截图,它会将保存的截图上传到imgur(或者在我的情况下,我的自托管网站使用ziggi/zimg-host),然后用xclip将所需的结果数据(最终URL链接)到您的剪贴板。
这是我的(很基地)bash脚本,我现在必须执行此通缉目的:
#!/bin/bash
function uploadImage {
curl -s -F files[]="@$1" http://ziggisite.com/upload.php
}
if [ "$#" -ne 1 ]; then
notify-send "Upload error"
else
uploadImage $1 | xclip -selection c
notify-send "Upload complete"
fi
当我使用下面的命令启动此脚本:scrot -e './img.sh $f'
,其上传的截图成功,但XCLIP呢不要将正确的数据复制到我的剪贴板 - 而是复制所有输出的内容。
以供参考,ziggi/zimg主机响应看起来是这样的:
[
{
"name":"image1.jpg",
"type":2,
"size":
{
"width":420,
"height":336,
"filesize":26834
},
"error":
{
"upload":0,
"type":0,
"size":0
},
"url":"ccc762c11f336cfa9fdbcc1b7ea4c1a3.jpg"
}
]
基本上一旦剧本跑,我需要它来复制响应的“URL”部分,并抛出http://ziggisite.com
在它的开始,所以复制到我的剪贴板的最终数据看起来像http://ziggisite.com/ccc762c11f336cfa9fdbcc1b7ea4c1a3.jpg
。
如果有人可以抛出一些资源或援助,那会很棒!
获取JSON解析器。我最喜欢的是[stedolan/jq](https://github.com/stedolan/jq)。 – 4ae1e1
@ 4ae1e1我抓住jq并尝试用它来解析URL值,但是我能得到的最接近的结果是包含'{“url”:“ccc762c11f.jpg”}'的整个结果。我正在使用'jq'。[0] | {URL}''。我怎样才能改变这只是抓住'ccc762c11f.jpg' – amy
你看过手册吗? 'jq'的DSL非常简单。当你面对DSL时,你不会猜测或发明自己的语法;相反,你去RTFM(阅读f *手册)。无论如何,我会为你的具体情况写一个答案。 – 4ae1e1