![切换 Skype 通知状态](https://linux22.com/image/38029/%E5%88%87%E6%8D%A2%20Skype%20%E9%80%9A%E7%9F%A5%E7%8A%B6%E6%80%81.png)
可以通过以下方式更改联系人是否在线/离线的通知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
明显说明它是否打开。
因此我的问题如下:可以自动打开/关闭通知吗?
请务必注意,Offline
和Online
仅在文件中出现一次XML
。
到目前为止我能做的就是:
sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'
行号在哪里197
(取决于大小写,因此非常糟糕),并且在我不检查通知的现有状态的情况下,我只是将其关闭。
简而言之,我想做的就是自动将两行更改0
为1
(或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 或其他文件中。