Избегайте остановки команды 'read' для ввода при отсутствии ввода со стандартного ввода

Предполагая, что вы говорите о протоколе загрузки ARM Linux, r1 и r2 являются регистрами процессора. В 32 -битных процессорах ARM имеется 16 регистров общего назначения -, которые называются r0 -r15.

0
15.10.2020, 03:30
2 ответа

Встроенный тест bash с -t должен хорошо справляться с этой задачей. [ -t 0 ]По этой ссылке есть хороший пример:

Как определить, является ли ввод аргументом, файлом или терминалом

0
18.03.2021, 22:57

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

Это мое предпочтительное решение:

  # take input from stdin, if it exists.
  if read -t 0; then
    declare line
    while read -sr line; do 
      echo "$line"
    done
  fi

[-t 0 ] также работает:

  # take input from stdin, if it exists.
  if [ -t 0 ]; then
    declare line
    while read -sr line; do 
      echo "$line"
    done
  fi
-1
18.03.2021, 22:57

Теги

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