
連絡先がオンライン/オフラインかどうかの通知は、Skype オプションまたは を介して~/.skype/your_skype_id/config.xml
。このファイルでは、選択した内容に応じて、次の行が見つかります。
<Notify>
<Chat>0</Chat>
<Offline>1</Offline>
<Online>1</Online>
</Notify>
ここで、 <Offline>n</Offline>
(それぞれ<Online>n</Online>
)は「連絡先がオフラインになりました」(それぞれ「連絡先がオンラインになりました」) オプションがあり、n
それがオンかどうかが明確に示されています。
したがって、私の質問は次のとおりです。通知を自動的にオン/オフに切り替えることはできますか?
ファイルに 1 回だけ表示されるOffline
ことに注意することが重要です。Online
XML
今のところ私ができることは次の通りです:
sed -i config.xml -e '197s!<Online>1</Online>!<Online>0</Online>!'
行番号はどこに197
ありますか (大文字と小文字が区別されるため、かなり悪いです)。通知の既存のステータスを確認しない場合は、通知をオフにするだけです。
つまり、両方の行を(または)に自動的0
に変更したいのです。1
1
0
答え1
これは bash/shell スクリプトの仕事のように思えます。
私がやりたいのは、grep を使用してファイル内で 1 または 0 を検索し、コマンドを使用してそれらを置き換える簡単な if ステートメントを作成することです。次のようにします。
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 か何かに入れます。