指定按键作为“if”命令的变量

指定按键作为“if”命令的变量

在继续之前,请记住,我知道我可以通过设置菜单配置键盘快捷键,但这对我的最终目标没有用处。

我正在尝试创建一个简单的脚本来将单个按键作为输入,然后执行操作。理想情况下,我想在按下按键时执行命令up

虽然我可以集成,例如,x关键如下:

echo "press key"
read -sn 1 key
if [ "$key" == "x" ]; then echo "x"; fi

我正在努力找出如何使用本示例中的up密钥。 可以这样做吗?x

答案1

尝试这个:

#! /usr/bin/env bash

read -p "press key " -sn 1 key 
#you can use -p "Message" instead of using echo "Message" before.

if [ "$key" == $'\x1b' ]; then
   
   read -sn2 chars

   if [[ $chars = '[A' ]];then
      echo You pressed 'Up' key
   fi
else 
   echo Pressed another key
fi

Up key当您键入, Right key, Left key,等键时Down KeyFn+N会生成字符串x1\b。因此,您必须检查变量是否包含该字符串,如果是,那么您应该读取以下两个字符:

  1. [A用于向上键
  2. [C用于右键
  3. [B用于向下键
  4. [D用于左键

相关内容