我將其發佈在 raspberrypi.stackexchange 上,但被定向到此處。我是 Linux / Unix 的新手,我正在嘗試獲取一個與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
語句確保僅當下載的檔案是 JPG 時才使用 shotwell,因為有時我會將相機設定為建立 raw(佳能上的 CR2),但無法在 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 上是否可用。