Предполагая, что вы говорите о протоколе загрузки ARM Linux, r1 и r2 являются регистрами процессора. В 32 -битных процессорах ARM имеется 16 регистров общего назначения -, которые называются r0 -r15.
Встроенный тест bash с -t должен хорошо справляться с этой задачей. [ -t 0 ]
По этой ссылке есть хороший пример:
Как определить, является ли ввод аргументом, файлом или терминалом
Есть два решения этой проблемы, и оба они одинаково быстры и не громоздки.
Это мое предпочтительное решение:
# 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