У меня вопрос очень новичка, я уверен. Я пытаюсь создать сценарий для редактирования внутренних временных меток 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
linux
command-line
bash
expansion
user127236
источник
источник
Ответы:
Вы не должны бояться того, что показывает set -x. Он просто указывает, где по-своему находятся границы слов и пробелы, но это не то, чем будет ваша команда при вызове.
Тем не менее, вам следует подумать о том, чтобы написать свои выражения немного проще для ясности. Например:
источник