Linuxで特定の月の日数を表示する方法

この記事では、Linux環境で特定の月の日数を表示する方法について詳しく解説します。シェルスクリプトを使って自動化の仕方、さらには多様な応用例も紹介します。コード例、その解説、そして応用例も含めて説明しますので、ぜひ最後までお読みください。

目次

基本的な方法

Linuxで特定の月の日数を知る基本的な方法は、`cal`コマンドを使用することです。このコマンドは、カレンダーを表示するのにも使われます。

cal 9 2023  # 2023年9月のカレンダーを表示

このコマンドにより、2023年9月のカレンダーが表示され、最終日(日数)も簡単に確認できます。

日数だけを表示する

日数だけを抽出するためには、`cal`コマンドの出力を加工する必要があります。以下のスクリプトでは、`awk`を使って最終日のみを表示します。

cal 9 2023 | awk 'NF {DAYS=$NF}; END {print DAYS}'  # 2023年9月の日数を表示

このスクリプトの実行により、2023年9月の最終日(日数)が表示されます。

応用例

例1: 一年間の各月の日数を一覧表示

for month in {1..12}; do cal $month 2023 | awk 'NF {DAYS=$NF}; END {print "2023年" month "月: " DAYS "日"}'; done

このスクリプトを実行すると、2023年の各月の日数が一覧で表示されます。

例2: 現在の月の日数を表示

cal $(date +"%m %Y") | awk 'NF {DAYS=$NF}; END {print DAYS}'  # 現在の月の日数を表示

例3: うるう年の判定

days=$(cal 2 $year | awk 'NF {DAYS=$NF}; END {print DAYS}')
if [ "$days" -eq "29" ]; then
  echo "$year is a leap year."
else
  echo "$year is not a leap year."
fi

例4: ユーザーから入力を受け取る

read -p "年と月を入力してください (例: 2023 9): " year month
cal $month $year | awk 'NF {DAYS=$NF}; END {print "日数: " DAYS "日"}'

例5: シェルスクリプトにまとめる

#!/bin/bash
# 特定の月の日数を表示するスクリプト
year=$1
month=$2
cal $month $year | awk 'NF {DAYS=$NF}; END {print "日数: " DAYS "日"}'

このスクリプトファイルを保存し、実行権限を与えることで、コマンドラインから簡単に特定の月の日数を確認できます。

まとめ

Linuxで特定の月の日数を確認する方法として、基本的な`cal`コマンドの使用から、その出力を加工して日数だけを抽出する方法、さらに多様な応用例について解説しました。これらの知識を活用して、日常の業務やスクリプト作成に役立ててください。

created by Rinker
オライリージャパン
¥3,080 (2024/11/24 18:00:13時点 Amazon調べ-詳細)

コメント

コメントする

目次