URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4854
[ Назад ]

Исходное сообщение
"Как проверить текущий статус /dev/ttyXXX ?"

Отправлено San , 17-Ноя-05 20:45 
После инсталляции некоего девайса в системе появились два порта: /dev/ttyr00 и /dev/tyyr01
Если устройство включено, то echo "something" > /dev/ttyr00 выполняется успешно. Когда же девайс отключен, то выскакивает ошибка: bash: /dev/ttyr00: Input/output error
Вопрос: как-нибудь можно из bash-скрипта проверить состояние /dev/ttyr00 ?
Alive оно или dead. Чтобы если только оно alive - посылать в него данные.

Содержание

Сообщения в этом обсуждении
"Как проверить текущий статус /dev/ttyXXX ?"
Отправлено allez , 17-Ноя-05 21:16 
>После инсталляции некоего девайса в системе появились два порта: /dev/ttyr00 и /dev/tyyr01
>
>Если устройство включено, то echo "something" > /dev/ttyr00 выполняется успешно. Когда же девайс отключен, то выскакивает ошибка: bash: /dev/ttyr00: Input/output error
>Вопрос: как-нибудь можно из bash-скрипта проверить состояние /dev/ttyr00 ?
>Alive оно или dead. Чтобы если только оно alive - посылать в
>него данные.


Ответ содержится в вопросе.
Отталкивайтесь от кода завершения команды echo:

echo > /dev/ttyr00 2>/dev/null && <посылаем данные>


"Как проверить текущий статус /dev/ttyXXX ?"
Отправлено San , 18-Ноя-05 08:22 
>Ответ содержится в вопросе.
>Отталкивайтесь от кода завершения команды echo:
>
>echo > /dev/ttyr00 2>/dev/null && <посылаем данные>

Несмотря на наличие "2>/dev/null" на консоль все равно вываливается сообщение: "/dev/ttyr00: Input/output error"
Я понимаю, что можно указать в строке запуска скрипта "2>/dev/null" и это работать будет, но хотелось бы подавить STDERR только у команды проверки порта. Это возможно?


"Как проверить текущий статус /dev/ttyXXX ?"
Отправлено allez , 18-Ноя-05 08:49 
>Несмотря на наличие "2>/dev/null" на консоль все равно вываливается сообщение: "/dev/ttyr00: Input/output error"
>Я понимаю, что можно указать в строке запуска скрипта "2>/dev/null" и это работать будет, но хотелось бы подавить STDERR только у команды проверки порта. Это возможно?


Возможно. Я малость лопухнулся :-). Напишите так:

(echo > /dev/ttyr00) 2>/dev/null


"Как проверить текущий статус /dev/ttyXXX ?"
Отправлено San , 18-Ноя-05 13:50 
>>Несмотря на наличие "2>/dev/null" на консоль все равно вываливается сообщение: "/dev/ttyr00: Input/output error"
>>Я понимаю, что можно указать в строке запуска скрипта "2>/dev/null" и это работать будет, но хотелось бы подавить STDERR только у команды проверки порта. Это возможно?
>
>
>Возможно. Я малость лопухнулся :-). Напишите так:
>
>(echo > /dev/ttyr00) 2>/dev/null

Ок. "Input/output error" перестала ругаться, но
во-первых: $? после этой команды всегда = 1
во-вторых: если нет порта, в /dev создается файл ttyXXX

Короче я по-другому сделал уже.
Две проверки. Первая [ -c /dev/ttyXXX] и вторая [проверка физической живости того устройства(пинг)]



"Как проверить текущий статус /dev/ttyXXX ?"
Отправлено Simps , 18-Ноя-05 11:18 
>>Ответ содержится в вопросе.
>>Отталкивайтесь от кода завершения команды echo:
>>
>>echo > /dev/ttyr00 2>/dev/null && <посылаем данные>
>
>Несмотря на наличие "2>/dev/null" на консоль все равно вываливается сообщение: "/dev/ttyr00: Input/output error"
>Я понимаю, что можно указать в строке запуска скрипта "2>/dev/null" и это работать будет, но хотелось бы подавить STDERR только у команды проверки порта. Это возможно?

echo > /dev/ttyr00 2>/dev/null >&-


"Как проверить текущий статус /dev/ttyXXX ?"
Отправлено San , 18-Ноя-05 13:51 
>>>Ответ содержится в вопросе.
>>>Отталкивайтесь от кода завершения команды echo:
>>>
>>>echo > /dev/ttyr00 2>/dev/null && <посылаем данные>
>>
>>Несмотря на наличие "2>/dev/null" на консоль все равно вываливается сообщение: "/dev/ttyr00: Input/output error"
>>Я понимаю, что можно указать в строке запуска скрипта "2>/dev/null" и это работать будет, но хотелось бы подавить STDERR только у команды проверки порта. Это возможно?
>
>echo > /dev/ttyr00 2>/dev/null >&-

Аналогично.
На "Input/output error" перестала ругаться, но
во-первых: $? после этой команды всегда = 1
во-вторых: если нет порта, в /dev создается файл ttyXXX