曜日(たとえば、水曜日には「Happy Hump Day」、金曜日には「TGIF」など)に基づいてメッセージを印刷するBashスクリプトを作成します。

曜日(たとえば、水曜日には「Happy Hump Day」、金曜日には「TGIF」など)に基づいてメッセージを印刷するBashスクリプトを作成します。

曜日に基づいてメッセージを印刷するBashスクリプトを作成します(たとえば、水曜日は「Happy hump day」、金曜日は「TGIF」など)。 bashスクリプトで曜日メッセージを印刷するには?

答え1

現在の曜日は1から7の整数です(1は月曜日)。

printf -v weekday '%(%u)T' -1

bashこれはバージョン4.2以降を実行していると仮定します。

この番号に基づいて他のメッセージを割り当てて印刷するには:

case $weekday in
    3) message='Happy hump day' ;;
    5) message='TGIF' ;;
    *) message='Some default message'
esac

printf 'Message of the day: %s\n' "$message"

答え2

メッセージ配列を宣言した後、実際の曜日に対応するメッセージを使用します。date +%wインデックスとして使用できる数値 0 .. 6 (0 は日曜日に対応) を返します。

#! /bin/bash
messages=(Sunday
          IFHM
          Tuesday
          'Happy hump day!'
          Thursday
          TGIF
          Saturday)

echo "${messages[$(date +%w)]}"

関連情報