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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: чтение нажатых клавиш на клавиатуре из скрипта  (Прочитано 2661 раз)

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

Оффлайн sherv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Доброго времени суток!
Пытаюсь реализовать эту инструкцию: http://habrahabr.ru/post/110905/
Но там описывается работа с gui, а я решил, что будет стоять ubuntu server. соответственно, требуется автозапуск скрипта при включении сервера, который бы читал нажатия на клавиатуру и что-то делал после нажатия определенных клавиш.
Написал пробный скрипт scan.sh:#!/bin/bash

while true
do

read -n1 Keypress

case "$Keypress" in

$'1')
echo "нажато 1"
exit
;;

$'2')
echo "нажато 2"
;;

esac

done
Если просто запускаю - все работает. По нажатию 1 выходит.
Поискал как сделать автозапуск. Нашел это http://tombuntu.com/index.php/2010/01/01/enable-automatic-login-in-ubuntu-9-10-server/ - на ubuntu server 14.04 успешно сработало. Потом нашел где-то про файл .bash_login. Создал его, прописал туда sh scan.sh. И вот тут оно работать перестало. Пишет:
scan.sh: 6: read: Illegal option -n
Насколько я понял, read пытается читать не оттуда, откуда нужно. Как заставить его читать именно клавиатуру? Или, может, организовать автозапуск по-другому?


« Последнее редактирование: 08 Июля 2019, 00:24:46 от zg_nico »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
L~$
L~$ bash -c 'read -n1 a'
1L~$
L~$ sh -c 'read -n1 a'
sh: 1: read: Illegal option -n
L~$
L~$

Wars ~.o

Оффлайн sherv

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
спасибо! исправил содержимое .bash_login на:
bash scan.sh - заработало как надо.

 

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