2015-01-09 5 views
1

간단한 bash 스크립트를 사용하여 내 랩톱의 터치 패드를 켜거나 끕니다. synclient Touchpadoff=1 을 사용하여 터치 패드를 끄고 synclient Touchpadoff=0 을 사용하여 사용하도록 설정할 수 있습니다. 하지만이 두 가지 명령을 전환 할 수있는 방법이 있습니까? (예 : 터치 패드가 꺼져 있으면 켜고 그 반대의 경우)?bash 스크립트에서 두 명령 사이를 전환 하시겠습니까?

감사합니다.

+1

tp_off = 0 ;;의 case $ {tp_off : = 0} 주위에 함수 래퍼가 있습니다. 0) tp_off = 1 ;; esac; synclient Touchpadoff = $ {tp_off}'가 도움이 될 수 있습니다. 행운을 빕니다. – shellter

+0

상태를 확인하기 위해 환경 변수를 만들 수 있습니다. –

답변

5

, 당신은 라인

TouchpadOff   = 0 

을 볼 수 있습니다 (또는 = 1) - 그것의 '0'
이 값을 grep하고 synclient Touchpadoff=을 다른 값으로 호출하십시오.
스크립트 toggleTouchpad.sh에서 예를 들어,

#!/bin/bash 
synclient TouchpadOff=$(synclient -l | awk '/TouchpadOff/{print !strtonum($3)}') 

awk 명령은 세 번째 필드의 "반대"(=가 두 번째) 인쇄 할 수 있습니다, 그래서 1의 경우 그것의 경우는 0을 출력합니다 0이면 1을 출력합니다.

+0

꽤 괜찮습니다. 내 컴퓨터에 synclient가 없으므로 -l은 값이있는 키나 키만 반환합니다. :) –

+0

'strtonum'이 필요하다고 생각하지 마십시오. –

+0

아, 나는'synclient -l'을 몰랐다. awk에 대해서는 아무것도 모르지만 awk : line 2 : function strtonum never defined'라고 말합니다. 어쨌든, 나는 OCaml에 내 자신의 스크립트를 작성하게된다. – user69818

0

별로 좋지 않지만 구현하기 쉬운 솔루션은 터치 패드의 /tmp/touch.state 실제 상태를 저장하는 것입니다. 그런 다음 바로이
파일에 터치 패드와 저장소를 '1'로 설정하고 그 반대의 경우도 마찬가지 synclient -l을하는

관련 문제