次のいずれかの方法で実行できるスクリプトがあると仮定します。
./foo arg1 arg2
./foo
コマンドの正しい使用法を出力するときにarg1とarg2が必須の引数ではないことを示す一般的に受け入れられている方法はありますか?
次の使用方法の出力のように、引数が角かっこで囲まれて印刷されていることに気づいたことがあります。
Usage: ./foo [arg1] [arg2]
これらの括弧は、引数がオプションであることを意味しますか、それとも引数がオプションであることを示す一般的に受け入れられている別の方法がありますか?
私は個人的にはスイッチがオプションであることを示す「標準」(特定の言語の記述方法を定義する標準があるなど)を実際に見たことはありませんが、それは本当に個人的な選択ですが、 IBMのドキュメント および Wiki 、私が個人的に見た多数のシェルスクリプト(およびさまざまなプログラムのコマンドラインオプション)と共に、「事実」は角括弧([]
)オプションのパラメーターとしてのパラメーター。 Linuxからの例:
ping
(出力をトリミング...)
usage: ping [-c count] [-t ttl] Host
どこ [-c count]
および[-t ttl]
はオプションのパラメーターですが、Host
はオプションではありません。
個人的にも同様に、[]
はオプションのパラメーターを意味します。
これは何よりも標準的なものだと思います。
Open Group Base Specifications Issue 7
IEEE Std 1003。1、2013年版
Copyright©2001-2013 The IEEE and The Open Group
長年にわたってさまざまな意味を表すのによく見た多くのことは言及していないようです。
[optional option]
<required argument>
{default values}
(miscellaneous info)
編集:これらは単なる慣習であることを追加する必要があります。重要なことは、賢明な慣習を選び、自分の慣習を明確に述べ、一貫してそれに従うことです。柔軟に対応し、ターゲットプラットフォームで最も頻繁に発生するような規則を作成します。ユーザーにとって最も簡単に適応できます。
はい、角括弧はUnixのマニュアルページのオプションの引数を示します。
「man man」から:
[-abc] []内の任意またはすべての引数はオプションです。