スクリプトから現在の月名(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"
またはprintf
(ksh93
またはbash
4.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}
パラメータ拡張は一致するケースを修正します。では、パターンはどこでも一致するため、 の完全な文字列は小文字です。$parameter
pattern
${m,,}
$m
または、 のようにksh
変数を小文字であらかじめ宣言します。
typeset -l month
bash
sを使用すると、printf
生成された文字列を次のようにスカラー変数1に自動的に挿入できます-v
。
$ printf -v month '%(%b)T'
$ printf 'It is %s\n' "${month,,}"
It is dec
または要素鍵 0
配列または関連配列変数