b () { arg=$1 # more code here } updateEnvironmentField () { linewithoutquotes=`echo $LINE | tr -d '"'` b "$linewithoutquotes" }
Здесь мы вызываем
b
с результатом подстановки вашей команды в виде строки. Функцияb
получает строку в переменнойarg
.Обратите внимание, что вы захотите использовать
printf
вместоecho
и что вам нужно будет правильно заключать расширение$LINE
в кавычки, чтобы пробелы, подстановочные символы и т. д. не искажали ваши данные (I Я также меняю обратные кавычки на$(...)
, так как это более корректно ):.
updateEnvironmentField () { linewithoutquotes=$( printf '%s\n' "$LINE" | tr -d '"' ) b "$linewithoutquotes" }
Если вы используете оболочку
bash
, вы можете использовать замену параметра${variable//pattern}
для удаления двойных кавычек,updateEnvironmentField () { linewithoutquotes=${LINE//\"} b "$linewithoutquotes" }
или просто
updateEnvironmentField () { b "${LINE//\"}" }
Связанные:
Вам понадобится инструмент EXIF , чтобы получить временную метку создания изображения, а затем используйте touch
для соответствующей установки временной метки файловой системы.
Я только что попробовал этот сценарий оболочки (, например. ex.sh)под ArchLinux, где я установил perl -изображение -exiftool
#! /bin/bash
for fn; do
ls -l "$fn"
touch -m -t "$(exiftool -createdate -d '%Y%m%d%H%M.%S' -s3 "$fn")" "$fn"
ls -l "$fn"
echo "------------------"
done
Вы можете опустить строки echo и ls... ; они просто отображаются до и после временных меток файлов.
./ex.sh *.jpg
или
./ex.sh 01.jpg 02.jpg