我使用-wait-event-and-download参数运行gphoto,以便使用我的红外遥控器拍摄的照片保存到计算机中。获取gphoto2的当前状态
我有第二个脚本设置中断等待处理,并拍照编程,就像这样:
#!/bin/sh
# shootnow.sh - stop the current gphoto2 process (if it exists),
# shoot a new image, then start a new wait-event process.
pkill -INT gphoto2 #send interrupt (i.e. ctrl+c) to gphoto2
sleep 0.1 #avoid the process ownership error
gphoto2 --capture-image-and-download #take a picture now
gphoto2 --wait-event-and-download #start a new wait-event process
但我想,以确保第一等待事件处理当前没有下载的图像在我中断它之前(这会导致图像填满相机的内存,妨碍进一步操作)的混乱情况。所以第二个脚本应该是更像这样的东西:
#!/bin/sh
# shootnow-with-check.sh - stop the current gphoto2 process (if it exists
# and isn't currently downloading an image), shoot a new image, then start
# a new wait-event process.
shootnow() { # same as previously, but now in a function
pkill -INT gphoto2
sleep 0.1
gphoto2 --capture-image-and-download
gphoto2 --wait-event-and-download
}
if [ ***current output line of gphoto2 process doesnt start with "Downloading"*** ] then
shootnow
else
echo "Capture aborted - a picture was just taken and is being saved."
fi
任何人都可以帮助我,如果声明?我可以读取正在运行的gphoto进程的当前输出行吗?
我期待使用'expect'先运行'gphoto -wait-event',然后监视“Downloading”字符串是否存在,当它发生时,将一些系统范围的变量(例如“ gphotoIsBusy“)设置为1,当检测到”Saving“字符串时再次将其关闭。任何人都知道如何让预期持续监控,像这样开启/关闭变量? – ajlowndes