.bashrc ファイル内の特定のコードを、特定の曜日の最初のログイン時にのみ実行する方法はありますか? コマンド置換 "$(date +%u)" を使用すると、曜日 (1 は月曜日) に対応する 1 から 7 までの数字が得られることは既にわかっています。ただし、後続のログインごとにこのコードを終日実行したくありません。どんなヒントでも大歓迎です。前もって感謝します!
質問する
1222 次
3 に答える
2
ディスクに何も書き込む必要はありません。
コマンドから日を抽出します: lastlog -u $USER and date
次に、適切な一致/比較を行います。
ロジックは次のようになります。
日付から日を取得 開始日が魔法の日である場合、 lastlog から日を取得 -u $USER 日が今日と一致しない場合 コマンドを実行します
于 2013-04-22T23:16:25.203 に答える
0
date +%u | ## Generate timestamp (could be a better date-spec)
tee timestamp.tmp | ## Save a copy for later usage
cmp - timestamp || ## Fail if date-spec changed
{
## In that case, update timestamp
mv timestamp.tmp timestamp &&
## And only if that succeeds, run your code
echo "Once a day" ;
}
de コマンドを実行する前にタイムスタンプに触れることを好みます。通常、何も実行しない方が繰り返し実行するよりも安全だからです。(パーティションが読み取り専用で再マウントされた可能性、ディスクがいっぱいになった可能性、アクセス許可が変更された可能性があります...)
于 2013-04-22T22:01:07.477 に答える