特定の年の対応する日付と日付を印刷したいと思います。
入力した年例は2018年で、月は2月です。だから出力が表示されます
Date. Day
1. thursday
2. Saturday
.
.
.
.
28. Wednesday
答え1
あなたはLinux初心者のための良い運動を説明しているので、宿題を与えませんが、あなたがそれを行うことができるように質問に答えます。
date
まず、このコマンドの使い方を学びますawk
。このdate
コマンドには曜日を数値形式で出力する機能があるので、コマンドラインにこれを入力すると次のように曜日をdate +%u
知ることができます。月曜日に。他の曜日には、たとえばd
オプションを使用してくださいdate -d2018-02-22 +%u
。+%A
「木曜日」など、地域の曜日名の形式コードもあります。このコマンドと他の多くの利点の詳細については、マニュアルページを参照してくださいdate
。
それから選択の余地があります。コマンドを繰り返してdate
毎月毎日結果を印刷したり、快適であると感じるスクリプトやプログラミング言語を使用してデフォルトで繰り返すこともできます。たとえば、モジュロ数学演算子を使用して%
週の 7 日間を繰り返しn%7
、case
それをステートメントとして印刷したり、曜日名の 7 要素の配列を定義したりできます。たとえば、次は配列を定義して使用する方法ですbash
。
dow=( Sun Mon Tues Wed Thu Fri Sat ) ; printf "%s\n" ${dow[4]}
今残っているのは、いつ停止するのかをループに伝えることです。あなたが扱っている月は何日ですか?おそらく12要素の配列を使用するのが最も簡単でしょう。各要素には、その月の日数が含まれます。うるう年の2月が29日であることを確認するには、外部テストを実行する必要があります。
を使用する場合awk
、できるこれを使用してください。しかし、ストリームエディタとして設計されており、ストリームを扱わないため、作業に最適なツールではありません。しかし、あなたの仕事なら必要 awk
すると、ここで詰まります。