「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 keyRight key、、などLeft keyのキーを入力すると、文字列がDown Key生成Fn+Nされますx1\b。したがって、変数に文字列が含まれていることを確認する必要があります。その場合は、次の2文字を読む必要があります。

  1. [A上キーの場合
  2. [C右クリック
  3. [Bダウンキー用
  4. [D左クリックの場合

おすすめ記事