Section Next | Prev


010 wdate - 世界時計

概要
UNIXの環境変数 TZ を用いた、簡単な世界時計。

スクリプトと解説 - [text]
#スクリプト解説
1#! /bin/bash #
2# @(#) world date #
3export TZ # 環境変数 TZ(Time Zone) の定義
4TZ=:Japan; printf "%-20s%s\n" "Japan" "`date`" # 日本時間にTZをセットし、日時を表示
5if [ $# -eq 0 -o $1="all" ]; then # 引数がないか、"all" の場合
6        set us uk # us, uk を引数にセットしなおす
7fi #
8 #
9while (($#>0)) # 引数を順に処理(24行目でシフトしている)
10do #
11        case $1 in # 最初の引数を評価
12        0|uk|UK) #0, uk, UK の場合
13                 TZ=:GMT;printf "%-20s%s\n" "England" "`date`" # TZ をGMT(グリニッジ標準時)として、日時を表示
14                ;; #
15        1|Italy|French|German) #
16                 TZ=:GMT+1;        printf "%-20s%s\n" "England" "`date`" #
17                ;; #
18        us|US) #
19                 TZ=:US/Central;        printf "%-20s%s\n" "US-Central" "`date`" #
20                 TZ=:US/Eastern;        printf "%-20s%s\n" "US-Eastern" "`date`" #
21                 TZ=:US/Hawaii;        printf "%-20s%s\n" "US-Hawaii" "`date`" #
22                ;; #
23        esac #
24        shift #
25done #

実行例
$ wdate
Japan               2018年 7月16日 月曜日 14時38分52秒 JST
US-Central          2018年 7月16日 月曜日 00時38分52秒 CDT
US-Eastern          2018年 7月16日 月曜日 01時38分52秒 EDT
US-Hawaii           2018年 7月15日 日曜日 19時38分52秒 HST
England             2018年 7月16日 月曜日 05時38分52秒 GMT

Section Next | Prev