LinuxForum.Fans
Тема

обращаюсь к скриптописателям знакомым с udev

Автор: ratte 5 сообщений 1212 просмотров
#183964

проблема со скриптом для festival, лежит в /usr/bin

text
#!/bin/bash

export PATH=/bin:/sbin:/usr/bin:/usr/sbin

FESTIVAL="festival --tts"

DEVICE=$1 UDEVINFO="udevadm info"

[ -z "$DEVICE" ] && exit [ -z "$ACTION" ] && exit

function get_device_attr () { path=`find /sys/devices -name $1` echo `$UDEVINFO --attribute-walk --path=$path | grep $2 -m1 | cut -f 2 -d '"'` }

function get_device_name () { device=$1

case $device in [0-9]-[0-9]) s=`get_device_attr $device "model"` [ -z "$s" ] && echo "model" || echo "$s" ;; sr0) echo "optical drive" ;; [sh]d*) s=`get_device_attr $device "ATTRS{vendor}"` echo "$s drive" ;; *) exit ;; esac } function say () { echo "$1 $2" | $FESTIVAL exit }

name=`get_device_name $DEVICE`

if [ -n "$name" ]; then case "$ACTION" in add) say "$name" "примонтировоно" ;; remove) say "$name" "размонтировоно" ;; change) say "$name" "изменено" ;; esac fi

/etc/udev/rules.d/62-festival.rules

text
SUBSYSTEMS=="usb", RUN+="/usr/bin/boltalka.sh %k"
SUBSYSTEMS=="block", RUN+="/usr/bin/boltalka.sh %b"

отчего-то озвучивает монтирование и размонтирование по нескольку раз. как заставить его говорить однократно?

система ubuntu 11.04

#184326
ratte написал:
UDEVINFO="udevadm info"

1. кавычки должны быть `обратными`
2. у меня и с ними не работает :)

ratte написал:
#!/bin/bash export PATH=/bin:/sbin:/usr/bin:/usr/sbin FESTIVAL="festival --tts" DEVICE=$1 UDEVINFO="udevadm info" [ -z "$DEVICE" ] && exit [ -z "$ACTION" ] && exit

может вы для начала обычный shell освоите? последняя команда всегда будет прерывать работу скрипта. ибо $ACTION пусто.
а откуда такой странный скрипт?

#184367
drBatty написал:

может вы для начала обычный shell освоите? последняя команда всегда будет прерывать работу скрипта. ибо $ACTION пусто.
а откуда такой странный скрипт?

на ЛОРе помогли. скрипт старый уже- с небольшими изменениями работает начиная с 2009 года.

#184368

дело-то в том, что он работает, но повторяет многократно добавление устройства.

#184564

почитал ещё в закромах интернета и решил пока вот такими правилами

text
ACTION=="add" KERNEL=="sd[b-d][0-9]" RUN+="/usr/bin/boltalka.sh %k"
ACTION=="remove" KERNEL=="sd[b-d][0-9]" RUN+="/usr/bin/boltalka.sh %k"
Войдите или зарегистрируйтесь, чтобы ответить.