Запустите обе команды в фоновом режиме и используйте wait -n
, чтобы дождаться завершения одной из них. (Избавьтесь от всего inputActive=$(...; echo $?)
бизнеса. Он не делает ничего полезного.)
timeout "$inputWindow" dd if=/dev/inputs/js0 of=/dev/null count="$inputCount" &> /dev/null &
timeout "$inputWindow" dd if=/dev/inputs/js1 of=/dev/null count="$inputCount" &> /dev/null &
wait -n
Если вы хотите проверить успех, вы можете использовать wait
непосредственно в выражении if
:
if wait -n; then
echo "one of them succeeded"
else
echo "one of them failed" >&2
fi
Кстати, вы можете использовать read
вместо timeout
и dd
. read -N
будет читать определенное количество символов, а read -t
устанавливает время ожидания.
read -N "$inputCount" -t "$inputWindow" < /dev/inputs/js0 &
read -N "$inputCount" -t "$inputWindow" < /dev/inputs/js1 &
wait -n