2016-06-21 2 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 명령을 사용하십시오.

예 : 당신이 당신의 스크립트 clear를 대체 할 것이다, 화면 물론

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

을 취소 F6 기능 키를 사용합니다.

F6 기호가 무엇인지 알아 보려면 read 명령을 입력하고 F6을 누르기 만하면됩니다.

enter image description here

참고 : 스크린 샷에 ^[ 코드의 \e입니다.

+0

내 게시물을 편집했습니다. 특히 화살표 키와 함께 제어 버튼을 사용하여 코드 시퀀스를 활성화하려고합니다. 이 작업을 바인드 할 것인가? – timi95

+0

예, 작동합니다. 나는 CNTL-Left_Arrow를 테스트했다. 이것은 코드이다. [OD와 위 예제는 여전히 작동했다. 그래서 당신은'bind ' "\ eOD"를 할 것입니다 : "your_script \ n"' – tale852150

+0

누군가가 묻는 경우를 대비하여, 로그인 세션이 끝나면이 '바인딩'이 제거됩니다. session-to-session에서 영구적으로 유지하려면 bash 터미널 세션/로그인 스크립트 (예 :'.bashrc' 스크립트)에'bind' 명령을 넣으십시오. – tale852150