Как туннелировать подданные mqtt к чистым данным (pd) в bash

Вы можете удалить повторяемость, используя цикл для . См. https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.html

Вот что я придумал:

#!/bin/bash
read -p "Input the range you want to practice. For example: 1-12, 4-9, 9-11: " range

QUESTIONS=0
CORRECT=0

for i in {1..5}; do
  let QUESTIONS++
  n1=$(shuf -i $range -n 1)
  n2=$(shuf -i $range -n 1)
  realans=$((n1 * n2))
  read -p "${n1} x ${n2}? " ans
  if [[ $ans -eq $realans ]]; then
    let CORRECT++
    echo "Correct! ${n1} x ${n2} is ${realans}."
  else
    echo "Incorrect. ${n1} x ${n2} is ${realans}."
  fi
done

echo "You got ${CORRECT} out of ${QUESTIONS} questions correct!"

Я упростил программу и выбрал читаем вместо zentity для простоты и для сохранения и ввода, и вывода в терминале. Я также продемонстрировал использование let var ++ , который является более чистым и современным способом увеличения счетчика.

0
07.09.2018, 13:06
1 ответ

Для печати только 23из выводаgyro 23

Вариант 1:Использование sed для печати только числовых значений.

mosquitto_sub -v -h 127.0.0.1 -p 1883 -t 'gyro' | sed 's/[^0-9]//g'

Вариант 2:Использование awk для печати второго поля, которое23

mosquitto_sub -v -h 127.0.0.1 -p 1883 -t 'gyro' | awk '{print $2}'
0
28.01.2020, 04:15

Теги

Похожие вопросы