使用 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

结束问题....

相关内容