У меня есть gphoto, работающий с аргументом -wait-event-and-download, так что изображения, которые я использую с помощью инфракрасного пульта, сохраняются на компьютере.получить текущий статус 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
Может ли кто-нибудь помочь мне в этом заявлении if? Могу ли я читать текущую выходную строку работающего процесса gphoto?
Я использую 'expect' для запуска' gphoto -wait-event', а затем отслеживает наличие строки «Загрузка», а когда это происходит, переверните некоторую общесистемную переменную (например, gphotoIsBusy ") до 1, выключая его снова, когда обнаруживается строка« Сохранение ». Кто-нибудь знает, как заставить постоянно отслеживать, вставляя переменную вкл./Выкл. Так? – ajlowndes