next up previous contents
Next: 配列(表引き) Up: シェルスクリプトの実例 Previous: シェルスクリプトの実例

挨拶

 

きちんと挨拶されると気持ちがいいものです。そこでminixにもloginしたとき、 ご主人様にちゃんとご挨拶ができるように教えることにしましょう。

listingsitem #!/bin/sh set `date` IFS=: set $4 case $1 in 0[6-9] | 1[0-1] ) echo "Good morning. Sir" ;; 1[2-7] ) echo "Good afternoon. Sir" ;; 1[89] | 2[01] ) echo "Good evning. Sir" ;; * ) echo "GO TO Bed!! :-)" ;; esac

1行目はminix上ではコメントとしての役割しかありませんが、unixの csh では #! に 続いて指定されたシェルでそのスクリプトを実行します。Bシェルは .*nix の標準シェル ですからそのまま他の環境に持ち込んでも走らせるオマジナイです。

ご挨拶スクリプトは最初にdateコマンドの出力をsetの引数として与え、スペースで 区切られたフィールドを切り出します。続いて IFS をコロンに設定して、いま切り出した 第4フィールドをさらに分割します。ここまでの操作でdateコマンドの出力から時間 を表す部分だけを取り出します。

そして、その時間を見て表示する挨拶メッセージを case文で選択します。 「おはよう」「こんにちは」「こんばんわ」のどれも言えないような時間帯には あなたの健康を気づかって「寝た方がいいんじゃない?」となります。

このスクリプトをあなたの .profile に書いておくとloginした直後に挨拶メッセージ を見ることができます。

さて、このスクリプトで挨拶メッセージを表示する時にあなたのログイン名を用いて "Good morning. taroh" などと表示させるにはどのように修正すればよいか考えて みてください。(メッセージ内にログイン名を直接埋め込むのは論外です)



Riichiro Saito
1995年08月29日(火) 11時41分26秒 JST