我正在尝试编写一个bash脚本,以保存特定格式的文件的屏幕截图。 我想把它保存为一个数字(比如0001.jpeg),如果0001.jpeg已经存在,那么继续保存为0002.jpeg,等等。 我知道用ffmpeg ,当试图从video中保存一个帧时,你可以使用如下的格式保存: /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
但是这并没有奏效。 正如你所看到的,我想不出多less可变性。 有谁知道如何做到这一点?
在Linux脚本中是什么意思? #!/ usr / bin / python -tt
BASH:在printf中格式化string
当信号设置为“DEBUG”假信号时,为什么我的陷阱不工作?
Bash脚本正则expression式
谢谢
如何使用boost program_options读取整数数组?
if语句总是计算为TRUE
使用Sed来replace旧的时间戳与当前的
从bash shell启动一个新的bash shell
您正在使用正确的数字格式来生成outfile名称,但是您需要一个变量和一个printf来将“/home/usr/ws/images_to_process/%04d.jpeg”转换为“/ home / usr / ws / images_to_process / 0001.jpeg”
我做了一个脚本,使用序列号创建文件,而不覆盖已经存在的文件。
#!/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
你可以改变“touch $ target”为“gnome-screenshot -w -B -f $ target”和变量“target”为你的outfile名称。 结果脚本是:
#!/bin/bash FILENAME="/home/usr/ws/images_to_process/%04d.jpeg" COUNTER=0 while true; do target=$(printf $FILENAME $COUNTER) if [ ! -f $target ]; then gnome-screenshot -w -B -f $target fi COUNTER=$(($COUNTER + 1)) done
我希望这个信息是有用的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。