bash-newbie 여기에. 조건이있는 경우 - 그러나 입력하지 않습니다bash : grep-variable 문제로 문자열 비교하기
#!/bin/bash
result=$(xinput --list-props 11 | grep "Device Enabled")
echo $result
# Output: Device Enabled (140): 1
if [[ "$result" = "Device Enabled (140): 1" ]]; then
`xinput set-prop 11 "Device Enabled" 0`
else
`xinput set-prop 11 "Device Enabled" 1`
fi
:
나는 활성화/내 노트북의 터치 패드를 비활성화 바로 가기로 다음과 같은 간단한 스크립트를 사용하고 싶습니다. echo $result
은 변수가 실제로 비교할 문자열 값을 포함하고 있음을 보여줍니다. 잠시 동안 검색했지만 결과 변수와 문자열이 if 조건에서 일치하지 않는 이유를 전혀 알 수 없습니다.
다음을보십시오 : http://www.shellcheck.net/ – Cyrus
'echo $ result'를'echo "$ result"'로 대체하십시오. 변수에는 두 개의 탭이 있습니다. – Cyrus
'xinput'을 역 인용 부호로 묶어서 조건 적으로 사용 하시겠습니까? 이러한 명령의 출력을 표시하려면 먼저'echo'와 같은 것을 사용해야합니다. 그리고 이미'$ (cmd)'형태의 cmd 치환을 사용하고 있기 때문에이 줄에 대해서도 그렇게하십시오. 나는 당신이'xinput ... '을 조건 적으로 사용하기 위해 cmd-substitution을 필요로하지 않는다고 생각한다. 'shellcheck.net' 플래그에 관심이 있는지 알아볼 것입니다. (예, 그렇습니다). 행운을 빕니다. – shellter