Bashスクリプトから現在の月名を取得する方法

Bashスクリプトから現在の月名を取得する方法

スクリプトから現在の月名(janやfebなど)を取得する構文は何ですかbash

答え1

このコマンドを使用できますdate(1)

たとえば、

date +%b

答え2

strftime(3)マニュアル()がシステムにインストールされている場合、このマニュアルにはman 3 strftimeこのユーティリティdate%(...)T使用できるすべてのフォーマット文字列が一覧表示されますprintf。コマンドマニュアルには、dateサポートされているフォーマット文字列を含めることもできます。

%b(「ロケールの略月名」)または(「ロケールのフル月名」)のいずれかを使用するには、%B次の+オプションを使用できますdate

$ date +%B
December

$ date +%b
Dec

$ date +'%B is abbreviated as "%b"'
December is abbreviated as "Dec"

またはprintfksh93またはbash4.3+)を使用してください。

$ printf '%(%B)T\n'
December

$ printf '%(%b)T\n'
Dec

$ printf '%(%B is abbreviated as "%b")T\n'
December is abbreviated as "Dec"

小文字の略語で月を取得するにはbash(ロケールが常に小文字の月名を指定しない場合):

$ month=$( date +%b )
$ printf 'It is %s\n' "${month,,}"
It is dec

${parameter,,pattern}パラメータ拡張は一致するケースを修正します。では、パターンはどこでも一致するため、 の完全な文字列は小文字です。$parameterpattern${m,,}$m

または、 のようにksh変数を小文字であらかじめ宣言します。

typeset -l month

bashsを使用すると、printf生成された文字列を次のようにスカラー変数1に自動的に挿入できます-v

$ printf -v month '%(%b)T'
$ printf 'It is %s\n' "${month,,}"
It is dec

または要素 0配列または関連配列変数

関連情報