2013-02-24 12 views
7

私は、dateコマンドを使って表示するのではなく、amまたはpmで時刻を表示するシェルスクリプトを作成しようとしています。私はこれをどうやってやるべきかわからない。私は初心者のために、それを操作するためにdateコマンドから時間をどのように抽出するのですか?そして、それを操作するために時間の数字をどのように抽出すればよいですか?AMまたはPMの表記で時刻を表示するシェルスクリプトを書く

答えて

1

dateコマンドの "+"書式設定オプションを使用できます。例えば:

> date +%l%p 
-> 7PM 
2

ではなく、それはdateコマンドを

date

コマンドは、書式文字列をとるを使用して示されている方法を。 %pを入力すると、指定された時間値、または現在のロケールに対応する文字列に応じて、 "AM"または "PM"のいずれかが表示されます。これはstrftime()を呼び出し、

% date +'%H:%M %p' 
08:01 am 

"フードの下":正午は "AM" として "PM" と真夜中として処理されます。詳細な書式設定オプションについては、man-pageを参照してください。あなたが探しているもの

7

dateが使用する形式である、文字列形式の時刻を表します

man strftime 

です。

ので、以下を使用し、現在のAM/PMを取得する:

date +"%p" 

または

ampm=`date +"%p"` 
echo $ampm 

時間は、いくつかのフォーマットのいずれかになります(あなたは12または24時間の時間をしたいですか、ゼロかどうかをリードする)私はあなたが非リーディングゼロの12時間の時間をしたい推測している:?

date +"%l" 
2

あなたはTIを印刷するには1未満に使用することができます私は午前と午後の形式で最大数分。

echo $(date +"%I:%M %p") 

アウトプット:9時20分PM

または

echo $(date +"%r") 

出力:午前9時20分09秒PM

または エコー$(日付+ "% I%p」)

出力:09 PM

1

ロケールの設定によって異なります。

LC_TIME="C" date +%l%p 
LC_TIME="C" date +'%l:%M %p' 
関連する問題