【发布时间】:2021-10-05 07:17:52
【问题描述】:
我制作了这个简单的 bash 脚本来截取全屏截图并将其保存到图片文件夹中
#!/usr/bin/bash
xfce4-screenshooter -f -s /home/rgcodes/Pictures/Screenshot_$scrshotcount.png
let "scrshotcount++"
...遇到了问题。 scrshotcount 是我在/etc/environment 中定义的全局变量,每次脚本运行时都会递增。但是,脚本无法全局递增变量,并导致脚本仅覆盖之前的屏幕截图。在 Google 和 Stack Overflow 上的搜索显示,这个问题根本不简单(关于子 shell 无法为父代更改变量的问题),找到其他方法会更好。
这是我的问题。我们如何将数字(按升序)附加到脚本抛出的屏幕截图,以便它们像在 Windows 上拍摄的那样保存?(Windows 自动为匹配文件名添加后缀,而不是覆盖它们,因此所有屏幕截图都具有相同的名称 '截图'和截图命令被使用的次数。)
我现在使用@erikMD 的方法作为临时权宜之计。
【问题讨论】:
-
您可以通过将日期时间附加到输出屏幕 .png 文件名来大大简化事情:
xfce4-screenshooter -f -s /home/rgcodes/Pictures/Screenshot_$(date +"%Y_%m_%d_%I_%M_%S_%p").png。 -
如果您真的想将计数附加到屏幕截图名称中,那么您可以执行
xfce4-screenshooter -f -s /home/rgcodes/Pictures/Screenshot_$(awk '{print $1}' <(wc -l <(ls /home/grcodes/Pictures/Screenshot*.png))).png之类的操作。此命令计算名为“Screenshot*.png”(星号是通配符)的文件的数量,并在新的屏幕截图图像文件名中使用该数量。需要注意的是,如果没有截图,那么第一个截图将被命名为“Screenshot_0.png” -
如果旧的屏幕截图被删除,计数器方法会覆盖较新的屏幕截图。
标签: linux bash linux-mint xfce