После инсталляции некоего девайса в системе появились два порта: /dev/ttyr00 и /dev/tyyr01
Если устройство включено, то echo "something" > /dev/ttyr00 выполняется успешно. Когда же девайс отключен, то выскакивает ошибка: bash: /dev/ttyr00: Input/output error
Вопрос: как-нибудь можно из bash-скрипта проверить состояние /dev/ttyr00 ?
Alive оно или dead. Чтобы если только оно alive - посылать в него данные.
>После инсталляции некоего девайса в системе появились два порта: /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 && <посылаем данные>
>Ответ содержится в вопросе.
>Отталкивайтесь от кода завершения команды echo:
>
>echo > /dev/ttyr00 2>/dev/null && <посылаем данные>Несмотря на наличие "2>/dev/null" на консоль все равно вываливается сообщение: "/dev/ttyr00: Input/output error"
Я понимаю, что можно указать в строке запуска скрипта "2>/dev/null" и это работать будет, но хотелось бы подавить STDERR только у команды проверки порта. Это возможно?
>Несмотря на наличие "2>/dev/null" на консоль все равно вываливается сообщение: "/dev/ttyr00: Input/output error"
>Я понимаю, что можно указать в строке запуска скрипта "2>/dev/null" и это работать будет, но хотелось бы подавить STDERR только у команды проверки порта. Это возможно?
Возможно. Я малость лопухнулся :-). Напишите так:(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Короче я по-другому сделал уже.
Две проверки. Первая [ -c /dev/ttyXXX] и вторая [проверка физической живости того устройства(пинг)]
>>Ответ содержится в вопросе.
>>Отталкивайтесь от кода завершения команды 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 >&-
>>>Ответ содержится в вопросе.
>>>Отталкивайтесь от кода завершения команды 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