我正在尝试编写一个bash脚本,该脚本可以保存我采用特定格式的文件的屏幕截图。我想将它保存为数字(例如,0001.jpeg),如果0001.jpeg已经存在,那么继续将其保存为0002.jpeg,依此类推。我知道,对于ffmpeg
,在尝试从视频中保存帧时,您可以采用如下方式保存的格式:/path/to/place/%04d.ext
并且它可以完成我想要的操作。我用我的代码尝试了这个,看起来像这样:
gnome-screenshot -w -B -f /home/usr/ws/images_to_process/$%04d.jpeg
我也尝试过:
gnome-screenshot -w -B -f /home/usr/ws/images_to_process/$(%04d).jpeg
和
gnome-screenshot -w -B -f /home/usr/ws/images_to_process/%04d.jpeg
但那并没有奏效。正如你所看到的,我无法想到很多变化。有谁知道怎么做?
由于
答案 0 :(得分:2)
您使用正确的数字格式来生成文件名,但您需要一个变量和一个printf来将“/home/usr/ws/images_to_process/%04d.jpeg”翻译为“/ home / usr / ws” /images_to_process/0001.jpeg“
我制作了一个小脚本,使用序列号创建文件,而不会覆盖现有文件。
.eachLike("attributes")
.eachKeyMappedToAnArrayLike("sale")
.stringType("new sale")
.closeObject()
.closeArray()
.closeObject()
.closeArray();
您可以更改“gnome-screenshot -w -B -f $ target”的“touch $ target” 和你的outfile名称的变量“target”。结果脚本是:
#!/bin/bash
FILENAME="file_%04d.txt"
COUNTER=0
#Change true for your finish condition
while true; do
target=$(printf $FILENAME $COUNTER)
# If not exists file $tarjet
# -f check if exist a file
# ! not condition
if [ ! -f $target ]; then
touch $target
fi
# counter ++
COUNTER=$(($COUNTER + 1))
done
我希望这些信息很有用。