\r\n\r\n

Linux端末で日付と時刻を表示する方法(bashスクリプトで使用することも可能)。

このチュートリアルでは、コマンドラインから日付を取得する方法と、シェルスクリプトで時刻を表示する以上のことを行う方法について説明します。

このチュートリアルでは、コマンドラインから日付を取得する方法と、シェルスクリプトで時刻を表示する以上のことを行う方法について説明します。

この情報を見るには、dateコマンドを実行すると、あなたのタイムゾーンの現在の日付と時刻が次のように表示されます。

date

デフォルトのフォーマットは、ちょっとバカっぽい。なぜ年号は、時間帯の後に最後に表記されるのではなく、月と日の後に印字されないのですか?心配しないでください:それはあなたが望む出力形式を制御する場合、日付はそれを明確に提供します。これまで、40以上のオプションを渡して、正確な出力形式を指示することができました。

いずれかのオプションを使用するには、日付、スペース、プラス記号「+」、および先頭のパーセント記号を含むオプションを入力します。c (data and time in regional settings format) オプションは、日付と時刻を地域設定に関連付けられた正規のフォーマットで印刷するようにします。ロケールは、OSのインストール時に提供された地理的、文化的な情報によって設定されます。ロケールは、通貨記号、用紙サイズ、タイムゾーン、その他の文化的規範などを制御します。

date +%c

年は、より自然な形で出力されるようになったように思います。

一度に複数の日付オプションを渡すことができます。一連のオプションは、フォーマットストリングと呼ばれます。日付(%A)、月(%d)、月名(%B)を表示する場合は、次のコマンドを使用します。

date +%A%d%B

フォーマット文字列全体を引用符で囲んで、スペースを含めるようにすれば問題ありません。

date +"%A %d %B"

フォーマット文字列には、以下のようにテキストを付加することができる。

date +"Today is: %A %d %B"

日付の冊子のページを上下にスクロールして目的の項目を探すのは、すぐに飽きてしまうものです。これらの選択肢をより簡単に見つけることができるよう、グループで話し合いました。

日付と時刻を表示するオプション

  • c: 日付と時刻を、タイムゾーンを含む、あなたの地域のフォーマットで表示します。

日付を表示するオプション

  • D:日付をmm/dd/yyのフォーマットで表示します。
  • F: yyyy-mm-dd フォーマットで日付を表示します。
  • x: あなたの地域のフォーマットで日付を表示します。

日付を表示するオプション

  • a: 月曜日,火曜日,水曜日などのように省略された曜日名を表示します.
  • A: 月曜日、火曜日、水曜日など、その日のフルネームを表示します。
  • u:月曜日=1、火曜日=2、水曜日=3というように、曜日の数字を表示します。
  • w: 日曜日 = 0, 月曜日 = 1, 火曜日 = 2, というように、曜日を表す数字を表示します。
  • d: 月日を表示し、必要なら先頭のゼロを表示します (01、02...09)。
  • e: 必要に応じて、先頭の空白文字 ('1', '2'...'9') を使って、その月の日数を表示する。
  • j: その年の曜日を表示します。必要であれば、先頭のゼロを2つまで表示します。

ショーウィークのオプション

  • U:日曜日を週の初めとする1年の週数を表示します。例:第3週、第20週など。
  • V:月曜日を週の初日として、1年間のISO週数を表示します。
  • W:月曜日が週の初日である年の週。

月を表示するオプション

  • bまたは%h:1月、2月、3月などのように省略された月名を表示する。
  • B:1月、2月、3月など、月のフルネームを表示します。
  • m: 必要に応じて、先頭のゼロ01、02、03...12を使用して、月番号を表示します。

年号を表示するオプション

  • C:年号を除いた世紀の印刷。2019年、20枚で印刷されます。
  • y:年を2桁まで印字します。2019年の場合、19枚で印字されます。
  • Y:年を4桁の数字で表示します。

時刻の表示に関するオプション

  • T:時間をHH:MM:SSで表示します。
  • R:24時間制を採用し、時・分を秒数なしのHH:MMで表示します。
  • r:12時間時計と午前または午後インジケータを使用して、お住まいの地域に応じて印刷時間を設定します。
  • X:24時間時計を使用して、地域に応じて印刷時間を設定します。を主張した。なお、テストでは、このオプションは以下のように%rと全く同じ挙動を示しました。イギリス地域に設定され、GMTに設定されたLinuxマシンでは、AMまたはPMインジケータなしで24時間時計を使用して、期待どおりに時間を表示します。

時間表示オプション

  • H:プリント 00、01、02...23時間。
  • I:12時間表示の00,01,02...12を使用して時間を表示します。

分表示のオプション

  • M:分、01、02、03...59を表示し、必要に応じて先頭にゼロを付ける。

秒数表示のオプション

  • s: 1970-01-01 00:00:00 (Unix時代の始まり) からの秒数を表示します。
  • S:秒を01、02、03...59と表示し、必要なら先頭にゼロを付ける。
  • ナース:ナノ秒を印刷する。

タイムゾーン情報を表示するためのオプション

  • z:タイムゾーンとUTCの時差を表示します。
  • %: z: タイムゾーンとUTCの時差を時・分の間に: をつけて表示します。
  • %: z:タイムゾーンとUTCの時差を表示、a:時、分、秒を表示 注:%記号とzの間は::です。
  • Z:タイムゾーンの名前をアルファベット順に表示します。

フォーマット関連オプション

  • p:AMまたはPMインジケータを大文字で表示します。
  • P:amまたはpmのインジケータを小文字で表示します。この2つのオプションの奇妙さに注目してください。小文字のpは大文字の出力、大文字のpは小文字の出力を表します。
  • t:ラベルを印刷します。
  • %Nurse: 新しい行を印刷します。

他のオプションを変更するためのオプション

他のオプションの表示を変更するには、これらの修飾子を % とオプション文字** の間に置きます。例えば、%-S は1桁の秒の値から先頭のゼロを取り除きます。

  • -:ハイフン1つで、1つの数値に対するゼロパディングを防ぐことができます。
  • _:アンダースコア1つで、1つの数値に先頭の空白を追加します。
  • 0:単一の数値の先頭のゼロを提供する。
  • ^: 可能であれば、大文字を使用する(すべてのオプションでこの修飾子が使用されるわけではない)。
  • #: 可能であれば、オプションのデフォルトのケースとは逆のケースを使用する(すべてのオプションがこの修飾子を使用するわけではない)。

さらに2つの素晴らしいヒント

ファイルの最終更新時刻を取得するには、-r(参照)オプションを使用します。なお、%記号ではなく-(ハイフン)を使用し、+記号は必要ありません。このコマンドをメインフォルダで試す場合。

date -r .bashrc

TZの設定は、1つのコマンドの実行中にタイムゾーンを変更することができます。

TZ=GMT date +%c

スクリプトで日付を使う

bashshellスクリプトで時刻と日付を表示できるようにするのは簡単です。以下の内容を含むテキストファイルを作成し、「広東省」として保存してください。

#!/bin/bash TODAY=$(date +"Today is %A, %d of %B") TIMENOW=$(date +"The local time is %r") TIME_UK=$(TZ=BST date +"The time in the UK is %r") echo $TODAY echo $TIMENOW echo $TIME_UK

以下のコマンドを入力して、実行権限を設定し、スクリプトを実行可能な状態にします。

chmod +x gd.sh

以下のコマンドでスクリプトを実行します。

./gd.sh

dateコマンドを使えば、タイムスタンプを提供することができる。表示されているスクリプトは、タイムスタンプを名前とするディレクトリを作成します。すると、現在のフォルダーにあるすべてのテキストファイルがその中にコピーされます。このスクリプトを定期的に実行することで、テキストファイルのスナップショットを取得することができます。時間をかけて、異なるバージョンのテキストファイルを含む一連のフォルダーを作成します。

これは堅牢なバックアップシステムではなく、あくまで例示に過ぎないことにご注意ください。

以下の内容のテキストファイルを作成し、snapshot.shという名前で保存してください。

#!/bin/bash # obtain the date and time date_stamp=$(date +"%F-%H-%M-%S") # make a directory with that name mkdir "$date_stamp" # copy the files from the current folder into it cp *.txt "$date_stamp" # all done, report back and exit echo "Text files copied to directory: "$date_stamp

以下のコマンドを入力して、実行権限を設定し、スクリプトを実行可能な状態にします。

chmod +x snapshot.sh

以下のコマンドでスクリプトを実行します。

./snapshot.sh

ディレクトリが作成され、その名前がスクリプトの実行日時になっていることがわかる。このディレクトリの中にテキストファイルのコピーがある。

ちょっとした工夫で、地味な日付コマンドも効果的に使うことができるのです。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ