4

毎週の会議に出席するためのリマインダーを設定する必要があります。私の会社の標準的なリマインダーツールの問題は、ワインの下で実行すると、画面外の仮想デスクトップにポップアップ表示されることです。

リマインダーウィンドウをポップアップして次の週に自分自身を再送信する「at」コマンドを思い付くことができるかどうかを確認するのは興味深いと思いました。

cronまたは目覚まし時計アプリを使用できることは知っていますが、これは私の好奇心を刺激しました。

シングルショットバージョンは次のようになります。

echo "DISPLAY=$DISPLAY zenity --title='Weekly Meeting' --text='Time for the weekly meeting' --info" | at 0955 NEXT Monday

誰かが適切なクワインのようなコマンドを思い付くことができますか?それは実行されるたびに、次の週に同じコマンドを繰り返しサイクルで追加で再送信しますか?

4

4 に答える 4

1

これを試してください:

export reminder='"DISPLAY=$DISPLAY zenity --title='\''Weekly Meeting'\'' --text='\''Time for the weekly meeting'\'' --info" | at 0955 NEXT Monday'; echo $reminder | at 0955 NEXT Monday

テスト用に両方のatコマンドを sayに変更at now + 1 minuteします。$DISPLAYコマンドが入力されたときに設定され、ジョブの実行時には正しくない可能性がありますが、これは質問のコマンドと同じ動作です。

于 2009-10-06T00:58:36.420 に答える
0

楽しみを台無しにして申し訳ありませんが、...ある種のcronジョブの方が理にかなっているのではないでしょうか?

于 2010-04-11T20:22:42.553 に答える
0

ファイルで試してください:

$ cat /tmp/quine_file
DISPLAY=:0.0 zenity --title='Weekly Meeting' --text='Time for the weekly meeting' --info;
at '0955 NEXT monday' </tmp/quine_file;

$ at '0955 NEXT monday' </tmp/quine_file

このようにして、ジョブが実行されるたびに、次の月曜日に別のジョブがスケジュールされます。

于 2009-10-06T09:23:31.327 に答える
0

私はおそらくごまかしていますが at、ほとんどの環境変数の値を保存するという事実を利用できます (そう$DISPLAYではない$DISPようですが):

export FOO=$DISPLAY CMD='DISPLAY=$FOO xmessage "hi there";
echo "$CMD" | at now + 1 minutes'
eval "$CMD"

私はそれらを持っていたので、1分間使用xmessageしましたが、もちろん、ニーズに合わせて調整できます。

于 2009-12-13T18:38:34.447 に答える