1

У меня вопрос очень новичка, я уверен. Я пытаюсь создать сценарий для редактирования внутренних временных меток EXIF ряда файлов фотографий JPG, используя утилиту командной строки exiftool. Моя настоящая проблема заключается в создании командной строки.

Мне нужно, чтобы команда, выполняемая скриптом, выглядела следующим образом:

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

Тем не менее, опция set -x в моем скрипте показывает, что выполняется

exiftool -overwrite_original_in_place '-DateTimeOriginal="2015:12:29' '08:00:00"' filename.jpg

Дополнительные символы одинарных кавычек вставляются в параметр DateTimeOriginal , и я не понимаю, почему и как.

Заранее благодарим за любую оказанную помощь.

JGB

1 ответ1

0

Вы не должны бояться того, что показывает set -x. Он просто указывает, где по-своему находятся границы слов и пробелы, но это не то, чем будет ваша команда при вызове.

Тем не менее, вам следует подумать о том, чтобы написать свои выражения немного проще для ясной картины. Например:

TIMESTAMP=`printf '2015:12:29 %02d:%02d:%02d' $HOUR $MIN $SEC`
EXOPTION="-overwrite_original_in_place -DateTimeOriginal=\"$TIMESTAMP\""

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .