/usr/bin/getopt: Difference between revisions

 
(11 intermediate revisions by the same user not shown)
Line 65: Line 65:


== OUTPUT ==
== OUTPUT ==
      Output is generated for each element described in the previous section.  Output is done in the  same
出力は、前のセクションで説明した各要素に対して生成される。 出力は、非オプション・パラメーターを除き、入力で指定された要素と同じ順序で行われる。 出力は、互換(引用符なし)モードで行うこともできるし、引数や非オプション パラメータ内の空白文字やその他の特殊文字を保持するように行うこともできる(引用符を参照)。 出力がシェルスクリプトで処理されるとき、それは(ほとんどのシェル言語でshiftコマンドを使用して)1つずつ処理することができる個別の要素で構成されているように見える。 これはunquotedモードでは不完全である、 要素が空白や特殊文字を含むと、予期しない場所で分割されることがあるからだ。
      order  as  the elements are specified in the input, except for non-option parameters.  Output can be
      done in compatible (unquoted) mode, or in such way that  whitespace  and  other  special  characters
      within  arguments  and  non-option  parameters are preserved (see QUOTING).  When the output is pro‐
      cessed in the shell script, it will seem to be composed of distinct elements that can  be  processed
      one  by  one  (by  using  the shift command in most shell languages).  This is imperfect in unquoted
      mode, as elements can be split at unexpected places if they contain whitespace  or  special  charac‐
      ters.


      If  there  are problems parsing the parameters, for example because a required argument is not found
必須引数が見つからない、またはオプションが認識されないなど、パラメータの解析に問題がある場合、標準エラー出力にエラーが報告され、問題のある要素の出力は行われず、ゼロ以外のエラーステータスが返される。
      or an option is not recognized, an error will be reported on stderr, there will be no output for the
      offending element, and a non-zero error status is returned.


      For  a  short  option, a single '-' and the option character are generated as one parameter.  If the
短いオプションの場合、1つの '-' とオプション文字が1つのパラメータとして生成される。 オプションに引数がある場合、次のパラメータが引数になる。 オプションが引数を取るが何も見つからなかった場合、次のパラメータが生成されるが、クォートモードでは空であり、クォートされていない (互換性のある) モードでは 2 番目のパラメータは生成されない。 他の多くの '''getopt'''(1) 実装はオプション引数をサポートしていないことに注意。
      option has an argument, the next parameter will be the argument.  If the option  takes  an  optional
      argument, but none was found, the next parameter will be generated but be empty in quoting mode, but
      no second parameter will be generated in unquoted (compatible) mode.  Note that many other getopt(1)
      implementations do not support optional arguments.


      If  several short options were specified after a single '-', each will be present in the output as a
複数の短いオプションが単一の '-' の後に指定された場合、 それぞれが独立したパラメータとして出力される。
      separate parameter.


      For a long option, '--' and the full option name are generated as one parameter.  This is  done  re‐
長いオプションの場合、'--' と完全なオプション名が 1 つのパラメータとして生成される。 これは、オプションが省略されているか、入力で単一の '-' で指定されているかに関係なく行われる。 引数は短いオプションと同様に扱われる。
      gardless  whether the option was abbreviated or specified with a single '-' in the input.  Arguments
      are handled as with short options.


      Normally, no non-option parameters output is generated until all options and  their  arguments  have
通常、すべてのオプションとその引数が生成されるまで、 オプション以外のパラメータ出力は生成されない。 その後、'--'が1つのパラメータとして生成され、 その後に非オプション・パラメータが見つかった順に、 それぞれ別のパラメータとして生成される。 短いオプション文字列の最初の文字が '-' だった場合のみ、 非オプション・パラメータの出力は、入力で見つかった場所に生成される (これは、'''SYNOPSIS''' の最初の書式が使われている場合はサポートされない。 この場合、'-' '+' の前にあるものはすべて無視される)
      been generated.  Then '--' is generated as a single parameter, and after it the non-option parame‐
      ters in the order they were found, each as a separate parameter.  Only if the first character of the
      short options string was a '-', non-option parameter output is generated at the place they are found
      in the input (this is not supported if the first format of the SYNOPSIS is used; in  that  case  all
      preceding occurrences of '-' and '+' are ignored).


==QUOTING==
==QUOTING==
      In compatible mode, whitespace or 'special' characters in arguments or non-option parameters are not
互換モードでは、引数やオプション以外のパラメータに含まれる空白文字や「特殊」文字は 正しく処理されない。 出力はシェルスクリプトに送られるため、スクリプトは出力をどのように個別の パラメータに分割すればよいのかわからない。 この問題を回避するために、この実装ではクォート処理を提供している。 これは、各パラメーターを引用符で囲んで出力を生成するというものである。  この出力が再び(通常はシェルの'''eval'''コマンドによって)シェルに供給されるとき、パラメータごとに正しく分割される。
      handled correctly.  As the output is fed to the shell script, the script does not  know  how  it  is
      supposed to break the output into separate parameters.  To circumvent this problem, this implementa‐
      tion offers quoting.  The idea is that output is generated with quotes around each parameter.  When
      this  output is once again fed to the shell (usually by a shell eval command), it is split correctly
      into separate parameters.


      Quoting is not enabled if the environment variable GETOPT_COMPATIBLE is set, if the  first  form  of
環境変数'''GETOPT_COMPATIBLE'''が設定されている場合、'''SYNOPSIS'''の最初の形式が使用されている場合、またはオプション'-u'が見つかった場合、クォートは有効にならない。
      the SYNOPSIS is used, or if the option '-u' is found.


      Different shells use different quoting conventions.  You can use the '-s' option to select the shell
シェルによって引用符の付け方が異なる。 '-s'オプションで使用するシェルを選択できる。 現在、以下のシェルがサポートされている: ''[[/usr/bin/sh|sh]]''、''[[/usr/bin/bash|bash]]''、''[[/usr/bin/csh|csh]]''、''[[/usr/bin/tcsh|tcsh]]''である。 shのようなクォート規則とcshのようなクォート規則である。 他のシェルスクリプト言語を使用している場合でも、これらのフレーバーのいずれかを使用できる可能性がある。
      you are using.  The following shells are currently supported: 'sh', 'bash', 'csh' and 'tcsh'.  Actu‐
      ally, only two 'flavors' are distinguished: sh-like quoting conventions and csh-like quoting conven‐
      tions.  Chances are that if you use another shell script language, one of these flavors can still be
      used.


==SCANNING MODES==
==SCANNING MODES==
      The first character of the short options string may be a '-' or a '+' to indicate a special scanning
短いオプション文字列の最初の文字は、特別なスキャンモードを示すために '-'または'+'にすることができる。 '''SYNOPSIS'''の最初の呼び出し形式が使われる場合、それらは無視される。
      mode.  If the first calling form in the SYNOPSIS is used they are ignored; the environment  variable
      POSIXLY_CORRECT is still examined, though.


      If  the first character is '+', or if the environment variable POSIXLY_CORRECT is set, parsing stops
最初の文字が'+'の場合、または環境変数'''POSIXLY_CORRECT'''が設定されている場合、 オプション引数でない最初のパラメータ(すなわち、'-'で始まらないパラメータ)が 見つかり次第、解析は停止する。 残りのパラメータは、すべて非オプション・パラメータとして解釈される。
      as soon as the first non-option parameter (i.e., a parameter that does not  start  with  a  '-')  is
      found  that  is  not an option argument.  The remaining parameters are all interpreted as non-option
      parameters.


      If the first character is a '-', non-option parameters are outputted at the  place  where  they  are
最初の文字が'-'の場合、非オプション・パラメータは見つかった場所に出力される。 通常の操作では、'--'パラメータが生成された後、それらはすべて出力の最後に集められる。 この'--'パラメーターも生成されるが、 このモードでは常に最後のパラメーターとなることに注意。
      found;  in  normal operation, they are all collected at the end of output after a '--' parameter has
      been generated.  Note that this '--' parameter is still generated, but it will always  be  the  last
      parameter in this mode.


==COMPATIBILITY==
==COMPATIBILITY==
      This version of getopt(1) is written to be as compatible as possible to other versions.  Usually you
このバージョンの '''getopt'''(1) は、他のバージョンと可能な限り互換性があるように書かれている。 通常、何も変更することなくこのバージョンと置き換えることができ、いくつかの利点もある。
      can just replace them with this version without any modifications, and with some advantages.


      If the first character of the first parameter of getopt is not a '-', getopt goes into compatibility
getopt の最初のパラメータの最初の文字が '-' でない場合、 getopt は互換モードに入る。 getoptは最初のパラメータを短いオプションの文字列として解釈し、他のすべての引数は解析される。 環境変数'''POSIXLY_CORRECT'''が設定されていない限り、パラメータのシャッフルは行われる(つまり、オプション以外のパラメータはすべて最後に出力される)。
      mode.  It will interpret its first parameter as the string of short options, and all other arguments
      will be parsed.  It will still do parameter shuffling (i.e., all non-option parameters are output at
      the end), unless the environment variable POSIXLY_CORRECT is set.


      The environment variable GETOPT_COMPATIBLE forces getopt into compatibility mode.  Setting both this
環境変数'''GETOPT_COMPATIBLE'''は、getoptを強制的に互換モードにする。 この環境変数と'''POSIXLY_CORRECT'''の両方を設定すると、「難しい」プログラムに対して100%の互換性を提供する。 しかし、通常はどちらも必要ない。
      environment variable and POSIXLY_CORRECT offers 100% compatibility for 'difficultprograms.  Usu‐
      ally, though, neither is needed.


      In compatibility mode, leading '-' and '+' characters in the short options string are ignored.
互換モードでは、短いオプション文字列の先頭の '-' '+' は無視される。


==RETURN CODES==
==RETURN CODES==
      getopt returns error code 0 for successful parsing, 1 if getopt(3) returns errors, 2 if it does not
getoptは、解析に成功した場合はエラーコード0を返し、'''[https://manpages.debian.org/bookworm/manpages-dev/getopt.3.en.html getopt]'''(3)がエラーを返した場合は1を返し、自身のパラメータを理解していない場合は2を返し、メモリ不足などの内部エラーが発生した場合は3を返し、-T付きで呼び出された場合は4を返す。
      understand its own parameters, 3 if an internal error occurs like out-of-memory,  and  4  if  it  is
      called with -T.


==EXAMPLES==
==EXAMPLES==
      Example  scripts  for  (ba)sh and  (t)csh are provided with the getopt(1) distribution, and are in‐
'''(ba)sh'''と'''(t)csh'''のスクリプト例は、'''getopt'''(1)ディストリビューションで提供されており、<u>/usr/share/doc/util-linux/getopt/</u>ディレクトリにインストールされている。
      stalled in /usr/share/doc/util-linux/getopt/ directory.


==ENVIRONMENT==
==ENVIRONMENT==
      POSIXLY_CORRECT
;POSIXLY_CORRECT
              This environment variable is examined by the getopt(3) routines.  If it is set, parsing stops
:この環境変数は '''[https://manpages.debian.org/bookworm/manpages-dev/getopt.3.en.html getopt]'''(3) ルーチンで調べられる。 この環境変数が設定されている場合、オプションでもオプション引数でもないパラメータが見つかると、すぐに解析が停止する。 残りのすべてのパラメータも、'-' で始まるかどうかに関係なく、非オプションパラメータとして解釈される。
              as  soon  as a parameter is found that is not an option or an option argument.  All remaining
              parameters are also interpreted as non-option parameters, regardless whether they start  with
              a '-'.


      GETOPT_COMPATIBLE
;GETOPT_COMPATIBLE
              Forces getopt to use the first calling format as specified in the SYNOPSIS.
:'''getopt'''は、'''SYNOPSIS'''で指定された最初の呼び出しフォーマットを強制的に使用する。


==BUGS==
==BUGS==
      getopt(3) can  parse long options with optional arguments that are given an empty optional argument
'''[https://manpages.debian.org/bookworm/manpages-dev/getopt.3.en.html getopt]'''(3) は、空のオプション引数を与えられたオプション引数を持つ長いオプションを解析することができる (しかし、短いオプションに対してはこれを行うことができない)。 この '''getopt'''(1) は、空のオプション引数は存在しないものとして扱う。
      (but cannot do this for short options).  This getopt(1) treats optional arguments that are empty  as
      if they were not present.


      The  syntax  if you do not want any short option variables at all is not very intuitive (you have to
短いオプション変数がまったく必要ない場合の構文は、あまり直感的ではない (明示的に空文字列に設定しなければならない)
      set them explicitly to the empty string).


==AUTHOR==
==AUTHOR==
      Frodo Looijaard ⟨frodo@frodo.looijaard.name⟩
Frodo Looijaard ⟨frodo@frodo.looijaard.name⟩


==SEE ALSO==
==SEE ALSO==
      bash(1), tcsh(1), getopt(3)
'''[[/usr/bin/bash|bash]]''', '''[[/usr/bin/tcsh|tcsh]]''', '''[https://manpages.debian.org/bookworm/manpages-dev/getopt.3.en.html getopt]'''(3)


==AVAILABILITY==
==AVAILABILITY==
      The getopt command is part of the util-linux package and is  available  from  Linux  Kernel  Archive
The getopt command is part of the util-linux package and is  available  from  Linux  Kernel  Archive   ⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩.
      ⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩.


== External link ==
== External link ==