Ich habe gphoto mit einem --wait-event-and-download-Argument laufen lassen, so dass die Bilder, die ich mit meiner Infrarot-Fernbedienung mache, auf dem Computer gespeichert werden.Aktuellen Status von gphoto2 erhalten
Ich habe ein zweites Skript eingerichtet, um die Wartezeit zu unterbrechen und ein Bild programmatisch nehmen, etwa so:
#!/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
Aber ich mag, dass der erste Warte-Ereignisprozess zur Zeit machen, ist kein Bild Download bevor ich es unterbreche (was eine unordentliche Situation verursacht, in der Bilder den Widder der Kamera füllen, was eine weitere Operation verhindert). So soll das zweite Skript etwas wie diese:
#!/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
Kann mir jemand helfen mit, dass if-Anweisung? Kann ich die aktuelle Ausgabezeile eines laufenden gphoto-Prozesses lesen?
Ich suche mit 'expect' zuerst das' gphoto --wait-event', dann beobachte das Vorhandensein der "Downloading" Zeichenkette, und wenn es auftritt, drehe irgendeine systemweite Variable (zB " gphotoIsBusy ") auf 1 und schaltet sie wieder aus, wenn die Zeichenfolge" Saving "erkannt wird. Wer weiß, wie man erwartet, kontinuierlich zu überwachen, eine Variable ein-/auszuschalten? – ajlowndes