月が数日かどうかを確認する方法は?

月が数日かどうかを確認する方法は?

今日が毎月15日であることを確認するbashスクリプトが欲しいです

if [ $dayOfMonth == 15 ]
then
  echo "15th day of month
fi

ベストアンサー1

このコマンドは、フォーマット文字列を使用してコマンドをdate +%d呼び出してその月の日付を取得するために使用できます。フォーマット文字列はマニュアルに記載されていますが、確かにC関数のマニュアルに記載されています。月の日付を2桁の数字で指定します(ゼロパディング可能)。date%ddatestrftime()

テストに使用できます。

day=$( date +%d )

if [ "$day" = "15" ]; then
   echo 'the 15th'
fi

ここで使用されている参照と文字列の間の同一性テストは単一のテストで実行されることに注意して=ください[ ... ]

実際に使用していると思われる最新バージョンのシェル(4.2+)では、以下をbash使用してその月の日付を取得することもできます。

printf -v day '%(%d)T' -1

これは外部コマンドに依存せず、変数をday今月の日付に設定しますdate-1現在の日時を示します。ドキュメントの説明を参照してください

おすすめ記事