2016-06-21 10 views
0

Für den folgenden Code möchte ich in der Lage sein, eine Taste gedrückt halten und drücken Sie eine andere, um ein Skript, wie eine "Strg" + "upArrow" Tastenkombination auszuführen von 'Schlüssel-unten' und 'Schlüssel-oben' Funktionalität ist, was ich brauche. Irgendwelche Ideen ?Lesen Sie eine Tastenkombination mit Bash-Skript

#!/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

Sie könnten die Funktionstaste in diesem Beispiel verwenden: – tale852150

Antwort

3

Um eine Tastenkombination zu verwenden, verwenden Sie den Befehl bash bind.

Beispiel: F6 Funktionstaste Bildschirm

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

Natürlich zu löschen, Sie clear mit Ihrem Skript ersetzen würden.

Um herauszufinden, was das F6 Symbol ist, geben Sie einfach den read Befehl ein und drücken Sie F6.

enter image description here

HINWEIS: Die ^[ auf dem Screenshot ist die \e im Code.

+0

Ich habe meinen Beitrag bearbeitet, ich möchte insbesondere den Steuerungsknopf in Kombination mit einer Pfeiltaste verwenden, um eine Codefolge zu aktivieren. Wird die Arbeit dafür genauso gut funktionieren? – timi95

+0

Ja, es wird funktionieren. Ich testete CNTL-Left_Arrow, das ist Code^[OD und mein Beispiel oben funktionierte noch. Also würden Sie 'bind '" \ eOD ":" your_script \ n "'' – tale852150

+0

Nur für den Fall, dass jemand fragt, werden diese 'Bindungen' entfernt, wenn Ihre Login-Sitzung endet. Um sie von Sitzung zu Sitzung dauerhaft zu halten, setzen Sie die 'bind'-Befehle in Ihr bash-Terminal-Sitzung/Login-Skript (z. B. das' .bashrc'-Skript). – tale852150

Verwandte Themen