切换 Skype 通知状态

切换 Skype 通知状态

可以通过以下方式更改联系人是否在线/离线的通知Skype选项或通过~/.skype/your_skype_id/config.xml.在此文件中,根据您的选择,可以找到以下行:

<Notify>
  <Chat>0</Chat>
  <Offline>1</Offline>
  <Online>1</Online>
</Notify>

其中<Offline>n</Offline>(resp. <Online>n</Online>) 对应于“联系方式已离线”(分别。“联系方式已上线”) 选项,其中n明显说明它是否打开。

因此我的问题如下:可以自动打开/关闭通知吗?

请务必注意,OfflineOnline仅在文件中出现一次XML

到目前为止我能做的就是:

sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'

行号在哪里197(取决于大小写,因此非常糟糕),并且在我不检查通知的现有状态的情况下,我只是将其关闭。


简而言之,我想做的就是自动将两行更改01(或1更改为)。0

答案1

这听起来像是 bash/shell 脚本的工作。

我想要的是使用 grep 创建一个简单的 if 语句来搜索文件中的 1 或 0,然后使用您拥有的命令替换它们。说:

if grep -q "<Online>1</Online>" "config.xml"; then
        echo "Statement Returned True, Will now execute"
        sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'

elif grep -q "<Online>0</Online>" "config.xml"; then
        echo "Statement Returned True, Will now execute"
        sed -i config.xml -e '197s!<Online>0</Online>!<Online>1</Online>!'
fi

if grep -q "<Offline>1</Offline>" "config.xml"; then
        echo "Statement Returned True, Will now execute"
        sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'

elif grep -q "<Offline>0</Offline>" "config.xml"; then
        echo "Statement Returned True, Will now execute"
        sed -i config.xml -e '197s!<Online>0</Online>!<Online>1</Online>!'
fi

并将其放入 run.sh 或其他文件中。

相关内容