2016-06-21 6 views
0

次のコードでは、 "Ctrl" + "upArrow"キーの組み合わせのように、あるボタンを押したまま別のキーを押してスクリプトを実行できるようにしたいと考えています。 「キーダウン」と「キーアップ」の機能性が私にとって必要なものです。何か案は ?bashスクリプトでキーの組み合わせを読む

#!/bin/bash 
    read -rsn1 input 
    while [ "$input" = "a" ]; do 
     read -rsn1 input2 
     if [ "$input" = "b" ]; then #spaces are important for control flow in bash-script 
      echo "Rest in pepperoni memeroni"; 
     fi 

    done 
+0

この例ではファンクションキーを使用することができます。 – tale852150

答えて

3

ショートカットキーを使用するには、bash bindコマンドを使用します。

例:クリアな画面にもちろん

bind '"\e[17~":"clear\n"' 

F6ファンクションキーを使用し、あなたのスクリプトでclearを置き換えます。

F6シンボルが何であるかを理解するには、readコマンドを入力してF6を押してください。

enter image description here

注:スクリーンショットの^[がコードで\eです。

+0

投稿を編集しました。具体的には、矢印キーと組み合わせてコントロールボタンを使用して、コードシーケンスをアクティブにします。これだけでも仕事を結びつけるのだろうか? – timi95

+0

はい、うまくいきます。私はCNTL-Left_Arrowをテストしました。これはコードです^ [ODと上の例はまだ働いています。だからあなたは 'bind '" \ eOD "を実行するでしょう:" your_script \ n "'' – tale852150

+0

誰かが尋ねる場合には、ログインセッションが終了するとこれらのバインディングが削除されます。それらをセッション間で永続的に保つには、bashターミナルのセッション/ログインスクリプト( '.bashrc'スクリプトなど)に' bind'コマンドを入れてください。 – tale852150

関連する問題