澤井@一個人 です. <20050204113548.740fbf4e.otsubo_p@xxxxxxxxxxxxxxx>の記事において otsubo_p@xxxxxxxxxxxxxxxさんは書きました。 > .bash_profile から date コマンドを呼び出すとはどういうことですか ? >ところで、ログイン時刻等を書き出すファイルを用意することは私が windows でやって >いたことです。windows から linux に乗り換えようとしている私にとって、切角の >コマンド類も豊富であろう linux ですから、よりスマートに、上記recordファイルを >用意することなく、プログラムができないかと思いますが、これは linux でも無理 >でしょうかね。 無理かと言われればプログラムが書ければ可能です. しかしそういう意味では別に MS-Windows でも可能でしょう. その日最初の login かどうかの判定ならこれでどうでしょうか? 午前4時を境界にしたいという要求の為にずいぶん複雑になって しまいますが… リモートログイン等は考えずにX11にグラフィカル login してるという 前提です(コンソールログインなら LOGIN_TTY を変えてください). やっつけで書いたのでどこかに抜けがあるかもしれません. ############################################################ export LC_ALL=C LOGIN_TTY=':0' DAY_START_TIME='04:00' TODAY_STRING=`date '+%a %b %e' ` NOW_TIME=`date +%H:%M` LOGIN_COUNT='0' if [ `expr "$NOW_TIME" '>' "$DAY_START_TIME" ` = '1' ] ; then LOGIN_TIME_LIST=`last -R $LOGIN_TTY | grep $USER | grep "$TODAY_STRING" | cut -b 34-38` else YESTERDAY_STRING=`date '+%a %b %e' --date '1 day ago'` LOGIN_TIME_LIST=`last -R $LOGIN_TTY | grep $USER | grep "$YESTERDAY_STRING" | cut -b 34-38` LOGIN_COUNT=`last -R $LOGIN_TTY | grep $USER | grep "$TODAY_STRING" | wc -l` fi for TIME in $LOGIN_TIME_LIST ; do if [ `expr "$TIME" '>=' "$DAY_START_TIME" ` = '1' ] ; then LOGIN_COUNT=`expr $LOGIN_COUNT + 1` fi done if [ $LOGIN_COUNT = "1" ] ; then echo "First login : $LOGIN_COUNT"; else echo "Not First : $LOGIN_COUNT"; fi ############################################################ ただし,私ならこんな面倒なことはせずにその日2回目だろうが 3回目だろうが関係なく番組表を表示させます. 表示されて困るわけじゃないですから. --- _/ SAWAI, Masahiko _/ say@xxxxxxxxxxxxxx