Я пытаюсь запустить команду (wminput
) в bash-скрипте и сохранить ее stderr в переменной.
Этот stderr будет выведен только в случае сбоя команды.Если это удастся, он не будет распечатан на stderr и не выйдет, пока не выйдет что-то еще, что займет от нескольких секунд до часов.Итак, я не могу сделать:
output=$(wminput -r -q 2>&1 >/dev/null)
, иначе весь скрипт зависнет.И BASH не нравится, если я делаю
wminput -r -q 2>&check >/dev/null &
И это ничего не говорит о
wminput -r -q 2>check >/dev/null &
Но ничего не устанавливается.
Есть ли другой способ отправить stderr в переменную?Или это уже отправлено в переменную, где я могу получить?
мой код (я знаю, это прямо сейчас бесконечный цикл):
x="1"
while [ "$x" == "1" ]; do
wminput -r -q 2>&check >/dev/null &
sleep 6s
if [ "$(echo $check | grep -q 'No wiimotes found')" == "1" ] && [ "$(echo $check | grep -q 'unable to connect')" == "1" ]; then
notify-send "Wiimote Connected!"
else
continue
fi
done
Как я уже сказал, яхотел бы установить вывод stderr из wminput
в переменную, не дожидаясь его выхода.Таким образом, если это займет слишком много времени, я могу предположить, что это удалось.Есть ли способ сделать это?
Спасибо!