Bash를 사용하여 Gnome 확장 프로그램 전환

Bash를 사용하여 Gnome 확장 프로그램 전환

Gnome 확장에 대한 토글 키를 만들고 싶습니다. 확장은 속성의 상태와 일치합니다. 예시 목적으로 이 확장을 선택했습니다.

gnome-extensions show [email protected] | grep State

변환된 값을 사용하여 문자열 비교를 하려고 했는데 문제가 발생했습니다. 반환 값이 문자열이 아닌 것 같습니다.

#!/bin/bash

STATE="$(gnome-extensions show [email protected] | grep State)"
echo $STATE     # output: State: ENABLED

COMPARE="State: ENABLED"

# does not work
if [ "$STATE" = "$COMPARE" ]; then
    echo "the state is enabled"
fi

내 생각엔 반환된 결과가 문자열이 아니고 콜론에 분명한 의미가 있는 것 같지만 이 문제를 해결하는 방법을 모르겠습니다.

답변1

@mosvy의 몇 가지 팁을 통해 마침내 알아냈습니다. 질문을 마무리하고 답변을 제공하기 위해 이 글을 게시했습니다.

하위 문자열 "ENABLED"를 찾으세요. 생각보다 쉽습니다.

#!/bin/bash

STATE="$(gnome-extensions show [email protected] | grep State)"

# example output for STATE: 'State: ENABLED'

if [[ $STATE == *"ENABLED"* ]]; then
  echo "It's there!"
  gnome-extensions disable [email protected]
else
  echo "Not found!"
  gnome-extensions enable [email protected]
fi

질문 끝....

관련 정보