bash съедает мою строку

Во-первых, выпуск RC2 является кандидатом на выпуск установщика , а не всего выпуска.

Теперь каждая строка означает следующее:

  • Общее количество критических для выпуска ошибок: общее количество ошибок, зарегистрированных на уровнях, которые являются критическими для выпуска (серьезными, серьезными или критическими), в Debian в целом (включая пакеты которые не являются кандидатами в следующий выпуск)
  • Число с исправлением: количество ошибок RC, для которых исправление есть в системе отслеживания ошибок
  • Число исправлений, подготовленных и ожидающих загрузки: количество ошибок RC, которые ожидают обработки (это тег в системе отслеживания ошибок)
  • Число, которое игнорируется: количество ошибок RC, которые игнорирует команда выпуска (это также тег в системе отслеживания ошибок)
  • Число, относящееся к текущей стабильной версии выпуск: количество ошибок RC, которые влияют на пакеты в текущем стабильном выпуске (Debian 8)
  • Число, относящееся к следующему выпуску: количество ошибок RC, которые влияют на пакеты в следующем стабильном выпуске (Debian 9, в настоящее время «тестируется»)

Число, которое должно быть как можно меньше до выпуска i последний. Его можно уменьшить, исправляя ошибки, игнорируя ошибки или удаляя пакеты из выпуска.

1
09.01.2017, 02:36
1 ответ

Полная честь @steeldriver за то, что он предположил, что это проблема с завершением строки возврата каретки, и дань уважения @AlexP за предложение hexdump как способ проверки теории.

Проблема в том, что строка, возвращаемая arduino-serial, имела завершающий '\ r \ n' (он же 0x0d 0x0a), о чем свидетельствует hexdump:

echo "$VERS" | hexdump -C
00000000  30 30 2e 30 31 0d 0a                              |00.01..|

Одно из возможных исправлений, которое я выбрал, - это конвейерная передача результаты через tr -c '\ r' для удаления возвращаемого символа, поэтому результирующий скрипт выглядит следующим образом:

#!/bin/bash

ARDUINO_SERIAL=arduino-serial/arduino-serial
PORT="/dev/cu.usbmodem1421"

VERS=$($ARDUINO_SERIAL -q -b 9600 -p $PORT -S 'V' -e '\r' -r | tr -d '\r')
echo --- VERS = $VERS
B="hello${VERS}goodbye"
echo --- B = $B

, который печатает как ожидалось:

--- VERS = 00.01
--- B = hello00.01goodbye
2
27.01.2020, 23:34

Теги

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