LINUX.ORG.RU

Скрипт bash

 ,


0

1

Вроде все просто, но не могу понять почему скрипт не отрабатывается. Сама суть что после нажатия кнопок курсора или ф1-ф2 должно высвечивать что это за клавиша

#!/bin/bash
#control keys
uparrowkey='^[[A'
downarrowkey='^[[B'
leftarrowkey='^[[D'
rightarrowkey='^[[С'
f1key='^[OP'
f2key='^[OQ'

echo -n "Press a control key then hit return: "
read KEY

case $KEY in
$uparrowkey) echo "UP Arrow"
;;
$downarrowkey) echo "DOWN Arrow"
;;
$leftarrowkey) echo "LEFT arrow"
;;
$rightarrowkey) echo "RIGHT arrow"
;;
$f1key) echo "F1 key"
;;
$f2key) echo "F2  key"
;;
*) echo "unknown key $KEY"
;;
esac 

Но скрипт не работает должным образом, либо выдает что неизвестная клавиша была нажата, либо вообще ничего не показывает.

Коды клавиш мне подсказала команда

cat -v

Где я неправ? Спасибо.

★★★★★

Последнее исправление: ipeacocks (всего исправлений: 1)

Ответ на: комментарий от anonymous

а каковы? отлавливать коды с cat -v - это ошибочное решение?

ipeacocks ★★★★★
() автор топика

Где я неправ?
f1key='^[OP'

Не '^[', а $«\eOP» (башизм) или «$(echo -e '\eOP')».

AITap ★★★★★
()

Всем спасибо, работает. Писал скрипт по книге Тенсли, и там вот был такой пример.

ipeacocks ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.