我有一个非常新手的问题,我确信。我正在尝试构建一个脚本来使用命令行 exiftool 实用程序编辑多个 JPG 照片文件的内部 EXIF 时间戳。我实际的问题在于构建命令字符串。
我需要脚本执行的命令如下所示:
exiftool -overwrite_original_in_place -DateTimeOriginal="2015:12:29 08:00:00" filename.jpg
我的脚本的相关部分是:
# compute timestamp
TIMESTAMP="2015:12:29 `printf %02d $HOUR`:`printf %02d $MIN`:`printf %02d $SEC`"
# Set options string for exiftool
EXOPTION='-overwrite_original_in_place -DateTimeOriginal="'$TIMESTAMP'"'
# Execute exiftool on the current file
exiftool $EXOPTION $f
但是,那设置-x脚本中的选项显示正在执行的是
exiftool -overwrite_original_in_place '-DateTimeOriginal="2015:12:29' '08:00:00"' filename.jpg
额外的单引号字符被插入到日期时间原始选项,但我不明白为什么或如何。
在此先感谢您提供的任何帮助。
日本国债
答案1
您不必担心 set -x 显示的内容。它只是以自己的方式指示单词边界和空格的位置,但这并不是您调用命令时的内容。
不过,为了更清晰,你应该考虑将表达式写得更简单一些。例如:
TIMESTAMP=`printf '2015:12:29 %02d:%02d:%02d' $HOUR $MIN $SEC`
EXOPTION="-overwrite_original_in_place -DateTimeOriginal=\"$TIMESTAMP\""