Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Помогите с bash - скриптом для SMS бота  (Прочитано 880 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн light204

  • Автор темы
  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Помогите с bash - скриптом для SMS бота
« : 18 Сентября 2012, 00:35:56 »
Все дело в том, что я написал маленький скрипт на bash для того, чтобы компьютер принимал и отправлял смски с телефона.
Для этого пользовался программой gnokii.
Проблема в том, что в коде она (gnokii) вызывается 2 раза и во второй раз с ошибкой. Говорит, что устройство (телефон) все еще занято.
Сейчас поясню. Вот мой код:

Код: (php) [Выделить]
#!/bin/bash

inp=$(gnokii --getsms IN 1 end)

echo $inp>/home/light204/Desktop/inp.txt

counter_love=$(grep -c люблю /home/light204/Desktop/inp.txt)
counter_luba=$(grep -c людей /home/light204/Desktop/inp.txt)
counter_hello=$(grep -c привет /home/light204/Desktop/inp.txt)
counter_good=$(grep -c хорошо /home/light204/Desktop/inp.txt)
counter_name=$(grep -c зовут /home/light204/Desktop/inp.txt)



if [ "$counter_love" == "1" ]; then

echo "Любить нужно людей, а я ПРОСТО КОМПЬЮТЕР!!! (надоело повторять)" | gnokii --sendsms '+79043495721'

elif [ "$counter_luba" == "1" ]; then

echo "Ладно, думаю, она не обидится :)" | gnokii --sendsms '+79043495721'

elif [ "$counter_hello" == "1" ]; then

echo "И тебе привет! Как дела твои?" | gnokii --sendsms '+79043495721'

elif [ "$counter_good" == "1" ]; then

echo "Что же, я очень рад за тебя! А я, вот, уже устал тут работать :(" | gnokii --sendsms '+79043495721'

elif [ "$counter_name" == "1" ]; then

echo "Меня Light204_comp зовут. Типа приятно познакомиться, хозяин ;)" | gnokii --sendsms '+79043495721'

fi

gnokii --deletesms IN 1 end

sleep 700

Ошибка:
GNOKII Version 0.6.30
Can't connect: Device or resource busy
Couldn't open PHONET device: Device or resource busy
Telephone interface init failed: Command failed.

Я точно знаю, что это из - за того, что в начале присутствует строчка inp=$(gnokii --getsms IN 1 end)

Если ее убрать, все начинает работать как надо. Но. Можно ли как - нибудь так поправить код, чтобы нивелировать ее воздействие? Как-то выгрузить ее, возможно, чтобы она не занимала телефон для других запросов?
Заранее спасибо за любую помощь!

P.S. Строчка  inp=$(gnokii --getsms IN 1 end) занимается тем, что выводит все сообщения из памяти телефона в переменную.
Вообще, сама суть программы - я пишу ей смску с текстом, где есть одно из заданных слов, она реагирует в зависимости от слова и отвечает.
« Последнее редактирование: 18 Сентября 2012, 00:40:20 от light204 »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Помогите с bash - скриптом для SMS бота
« Ответ #1 : 18 Сентября 2012, 01:03:33 »
Цитировать
Can't connect: Device or resource busy
занято, программа стоит, доллжно killall gnokii
Wars ~.o

Axa-Ru

  • Гость
Re: Помогите с bash - скриптом для SMS бота
« Ответ #2 : 18 Сентября 2012, 01:20:01 »
вот какую тему нашел:
http://www.linux.org.ru/forum/talks/4890455

Оффлайн Raf73

  • Активист
  • *
  • Сообщений: 740
    • Просмотр профиля
Re: Помогите с bash - скриптом для SMS бота
« Ответ #3 : 18 Сентября 2012, 14:20:04 »
Не пробовали ставить паузу после первой строки? Попробуйте поставить sleep, чтобы процесс чтения и завершение работы gnokii успело отработать, как пойдет процесс поиска строки и отправки.

 

Страница сгенерирована за 0.016 секунд. Запросов: 21.