13.2. パラメータとオプション
コマンドのパラメータやオプションを使って、細かい指示を与えます。 これによりコマンドの動作を調整することができます。
パラメータ #
まず、パラメータを指定する例を見てみます。
前節で使った cal
をもう一度使ってみましょう。cal
はパラメータとして「年」をとることができます。今回は 2023 というパラメータをつけて 2023 年すべてのカレンダーを出力させてみます。以下のように入力してください。
コマンド名 cal とパラメータ 2023 の間は で区切って、最後に を押します。すると次のような出力が得られます。
2023
1月 2月 3月
日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土
1 2 3 4 5 6 7 1 2 3 4 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25
29 30 31 26 27 28 26 27 28 29 30 31
… (以下略) …
うまく2023年すべての月が表示されたでしょうか? お望みならば、1723 年とか 2312 年などのカレンダーを表示させることもできます。このようにコマンドの後ろにスペースを空けてパラメータを入力することによって、ユーザの意図する値を渡すことができるのです。ちなみに、前節で cal とだけ打ったときは今月のカレンダーが出ました。これはパラメータを省略したときは、cal コマンドが今月のカレンダーを出すように設計されているからです。
cal 9 1752
として調べてみましょう)イギリスにおいて1752年9月にグレゴリオ暦にかわったために1752年 9月 2日の次が 1752年 9月 14日になっています。
オプション #
次に、オプションを指定する例を見てみます。以下のように入力してみて下さい。
今年のすべての月が表示されたでしょうか?
cal
というコマンドは -y
というオプションをつけることで、1 年分のカレンダーを表示できます。このようにハイフン -
のあとに指定する文字を、オプションといいます。オプションによって、コマンドの動作は色々変わります。
ハイフン-
に似た文字に、アンダースコア_
や日本語入力で変換した文字−
などがあります。厳密にハイフン-
をうつ必要があります。
複数のオプション指定 #
複数のオプションを同時に指定することもできます。たとえば次の例では、cal
コマンドに -y
オプションと -j
オプションを同時に指定しています。-j
オプションは、ある日付が 1 月 1 日から数えて何日目であるかを表示するオプションです。
2023
1月 2月
日 月 火 水 木 金 土 日 月 火 水 木 金 土
1 2 3 4 5 6 7 32 33 34 35
8 9 10 11 12 13 14 36 37 38 39 40 41 42
15 16 17 18 19 20 21 43 44 45 46 47 48 49
22 23 24 25 26 27 28 50 51 52 53 54 55 56
29 30 31 57 58 59
… (以下略) …
同時に複数のオプションを指定するには、-y -j
とスペースで区切って並べてもよいですし、-yj
のように一度に書いてもよいです。オプションにおいても、コマンド名と同様、大文字と小文字は区別されます。
オプションとパラメータの指定 #
コマンドはオプションとパラメータを同時にとることもできます。その場合は、「コマンド名 + オプション + パラメータ」の順番に入力をします。たとえば
と入力すると、2023 年のカレンダーが、日付が「1 月 1 日から数えて何日目であるか」という形で表示されるはずです。
オプションとパラメータは似た機能を持ち、使い分けは設計者のデザインによります。年のようにある程度の自由入力での表現が適するものはパラメータで、動作を切り替えるスイッチのような機能をオプションで与えることが多いです。
言語の切り替え #
国際化された環境では、表示言語を切り替えることができます。
コマンド名 cal
の前に LANG=
に続けて、対応する文字列をあたえると表示言語が切り替わります。
ここでは鑑賞するだけで問題ありません。
詳しい仕組みの説明は (まだ早いので) 後の章 25.2. 環境変数
で紹介します。
March 2023
Su Mo Tu We Th Fr Sa
1 2 3 4
(以下略)
Mars 2023
Di Lu Ma Me Je Ve Sa
1 2 3 4
(以下略)
月の名前や曜日の名前が変化しました。