Я разместил это на raspberrypi.stackexchange, но меня перенаправили сюда. Я новичок в Linux / Unix и пытаюсь запустить скрипт tether / display с gphoto2
.
gphoto2 --capture-tethered --hook-script=myhookscript.sh \
--filename="/home/media/usbpendrive/image-%Y%m%d-%H%M%S.jpg" \
--force-overwrite
Предполагается, что это загрузит изображение на мой USB-накопитель, а затем выполнит поиск новых команд в скрипте hookscript.
Следующим этапом будет использование qiv
или аналогичного просмотрщика изображений для поиска последнего снимка в папке, а затем его отображения на весь экран. Я бы хотел, чтобы кто-нибудь объяснил простыми словами, как сделать этот скрипт-хук.
решение1
Gphoto передает $ACTION
и $ARGUMENT
скрипту-хуку, который вы можете использовать.
В качестве примера:-
#!/bin/bash
if [ $ARGUMENT ]; then
if [[ $ARGUMENT =~ .+\.[jpg|JPG] ]]
then
# Then next few lines are optional
# Alternatively pass $ARGUMENT directly to your image viewer eg:-
# /usr/bin/shotwell "$ARGUMENT" &
DIRNAME=$(dirname "$ARGUMENT")
BASENAME=$(basename "$ARGUMENT")
NEWFILENAME="$DIRNAME/my_new_folder/$BASENAME"
mv "$ARGUMENT" "$NEWFILENAME"
/usr/bin/shotwell "$NEWFILENAME" &
fi
fi
Файл откроется в формате shotwell
, но его легко изменить на предпочитаемый вами просмотрщик.
Второе if
утверждение гарантирует, что shotwell используется только в том случае, если загруженный файл — JPG, поскольку иногда я настраивал камеру на создание raw (CR2 на Canon), который не открывался в shotwell. Полагаю, его можно расширить, чтобы открывать их с помощью другого просмотрщика.
Изображение будет сохранено как аргумент, предоставленный в --filename
- в вашем случае /home/media/usbpendrive/image-20140616-125500.jpg
. Это будет значение, сохраненное $ARGUMENT
и переданное в ваш скрипт-хук.
Вы можете использовать dirname
и basename
для разделения этого пути и имени файла на соответствующие части, а затем повторно использовать их для создания нового пути и имени файла для изображения.
$dirname /home/media/usbpendrive/image-20140616-125500.jpg
/home/media/usbpendrive
$basename /home/media/usbpendrive/image-20140616-125500.jpg
image-20140616-125500.jpg
$ARGUMENT
доступен только при gphoto
загрузке изображения, поэтому проверка $ACTION
в этом случае будет излишней.
Конечно, файлу необходимо будет установить исполняемый бит.
Я перестал пользоваться этим только тогда, когда обнаружил,Запутыватьно я не уверен, что это доступно на Pi.