Masakazu Takahashi
emasa****@gmail*****
2011年 9月 15日 (木) 16:12:52 JST
2011/9/15 Akihiro MOTOKI <amoto****@gmail*****>: > 更新された部分を中心に読みました。 (略) > また、単純な修正を git からの diff で添付します。 > diff は今日の夕方のコミット fd2702 に対するものです。 > 主に、原文の方の抜けの修正です。 レビューありがとうございます。以下のとおり反映しました。 GitHub でのコミットは、以下の 2 つです。 元木さんのパッチを適用したコミット: https://github.com/emasaka/bash-jman/commit/3f8b7a09884001712239a49b30c483d459bc40bd その後、元木さんのメールでのレビュー結果を反映したコミット: https://github.com/emasaka/bash-jman/commit/02b287992aee9299df9a5f1f0ee73eb0cce65604 > 長南さんとの議論されて結論が出ているた部分は > できるだけ外したつもりです。 長南さんと重複した部分については、確認のため、以下でその旨記しました (他意はありません)。 >> .\" Updated to 2.04 Sun Apr 1 2001 >> .\" by the members of JM Project (JM****@linux*****) >> .\" Satoshi Asakawa <asaka****@kanag*****> >> .\" Shinya Hanataka <hanat****@abyss*****> >> .\" Akihiro Motoki <mokku****@iname*****> >> .\" NAKANO Takeo <nakan****@apm*****> >> .\" Yuichi SATO <sato****@compl*****> >> .\" Kentaro Shirakata <argra****@ub32*****> >> .\" TAKEI Nobumitsu <takei****@webma*****> >> .\" UCHIDA Norihiro <KY4N-****@asahi*****> >> .\" >> .\" Updated to 2.05 Sat 14 Apr 2001 >> .\" by NAKANO Takeo > > 高橋さんの更新履歴も追記して頂ければと思います。 この場合、日付はどの時点を付ければよろしいでしょうか。 ドラフト提出の日付でしょうか。 >> .\"O .B Bash >> .\"O is intended to be a conformant implementation of the >> .\"O Shell and Utilities portion of the IEEE POSIX specification >> .\"O (IEEE Standard 1003.1). >> .B bash >> は IEEE POSIX Shell and Tools specification (IEEE Working Group 1003\.1) >> に準拠する実装を目指しています。 > > 原文の方が変更になっています。 > Shell and Utilities portion of the IEEE POSIX specification > (IEEE Standard 1003.1) 「IEEE POSIX specification (IEEE Working Group 1003\.1) の Shell and Utilities に準拠する〜」と変更しました。 >> .\"O .B Bash >> .\"O can be configured to be POSIX-conformant by default. >> .B Bash >> はデフォルトで POSIX 適合に設定することもできます。 > > 規格には準拠するということが多いので、ここも > 「POSIX 準拠に設定することも...」としてはいかがでしょうか。 長南さんのレビューで変更しました。 >> .\"O .B Bash >> .\"O also interprets a number of multi-character options. >> .B Bash >> が解釈するオプションには複数の文字からなるものもたくさんあります。 > > Bash → bash > > 日本語の場合には、大文字で始める必要はないと思います。 長南さんのレビューで変更しました。 >> .B \-\-posix >> .\"O Change the behavior of \fBbash\fP where the default operation differs >> .\"O from the POSIX standard to match the standard (\fIposix mode\fP). >> \fBbash\fP の動作のうち、 >> デフォルトの振舞いが POSIX 1003.2 の標準と異なる部分を、 >> 標準に適合するように変更します (\fIposix モード\fP)。 > > 原文が変更になっています。 > > POSIX 1003.2 の標準 → POSIX 標準 変更しました。 >> .B \-\-restricted >> .\"O The shell becomes restricted (see >> .\"O .SM >> .\"O .B "RESTRICTED SHELL" >> .\"O below). >> シェルの動作を制限します (後述の >> .SM >> .B 制限付きのシェル >> セクションを参照)。 > > -r オプションの説明と合わせると分かりやすいです。 > > シェルを制限された状態にします。 この訳文に変更しました。 >> .\"O An \fIinteractive\fP shell is one started without non-option arguments >> .\"O and without the >> .\"O .B \-c >> .\"O option >> .\"O whose standard input and error are >> .\"O both connected to terminals (as determined by >> .\"O .IR isatty (3)), >> .\"O or one started with the >> .\"O .B \-i >> .\"O option. >> \fI対話的な\fPシェルとは、 >> オプションでない引き数がなく、 >> 標準入力と標準出力がいずれも端末に接続されていて (これは > > 原文では、standard input and error に変更されています。 「標準出力」を「標準エラー出力」に変更しました。 >> .\"O .B Bash >> .\"O attempts to determine when it is being run with its standard input >> .\"O connected to a network connection, as when executed by the remote shell >> .\"O daemon, usually \fIrshd\fP, or the secure shell daemon \fIsshd\fP. >> .B bash >> は、自分を起動したのがリモートシェルデーモン (通常はリモートシェルデーモン >> \fIrshd\fP またはセキュアシェルデーモン \fIsshd\fP) かどうかを調べます。 > > 原文が変更されています。 長南さんのレビューで変更しました。 >> .\"O If the shell is started with the effective user (group) id not equal to the >> .\"O real user (group) id, and the \fB\-p\fP option is not supplied, no startup >> .\"O files are read, shell functions are not inherited from the environment, the >> .\"O .BR CDPATH , >> .\"O and >> .\"O .B GLOBIGNORE >> .\"O variables, if they appear in the environment, are ignored, >> .\"O and the effective user id is set to the real user id. > > この部分ですが、原文が違ってしまっているようです。 > 原文の方だけ、SHELLOPTS と BASHOPTS が消えてしまっています。 > (CDPATH と GLOBIGNORE だけが残っています) 元木さんのパッチにより修正しました。 >> .SS 単純なコマンド (Simple Commands) >> .PP >> .\"O A \fIsimple command\fP is a sequence of optional variable assignments >> .\"O followed by \fBblank\fP-separated words and redirections, and >> .\"O terminated by a \fIcontrol operator\fP. The first word >> .\"O specifies the command to be executed, and is passed as argument zero. >> .\"O The remaining words are passed as arguments to the invoked command. >> 単純なコマンド (\fIsimple command\fP) とは、 >> 変数の代入を並べたもの (これは省略可能です) の後に、 >> ブランク区切りの単語とリダイレクションを記述し、 >> 最後に制御演算子を置いたものです。 >> 最初の単語は実行するコマンドを指定します。 > > ", and is passed as argument zero" に対応する部分が抜けています。 長南さんのレビューで変更しました。 >> .\"O .SS Pipelines >> .SS パイプライン (Pipeline) >> .PP >> .\"O A \fIpipeline\fP is a sequence of one or more commands separated by >> .\"O one of the control operators >> .\"O .B | >> .\"O or \fB|&\fP. >> \fIパイプライン (pipeline)\fPは、記号 >> .B | >> または \fB|&\fP で区切った 1 つ以上のコマンド列です。 > > control operator の訳が他の箇所では「制御演算子」となっていますので、 > ここも合わせた方がよいかと。 「記号」を「制御演算子」に変更しました。 >> .\"O The standard output of >> .\"O .I command >> .\"O is connected via a pipe to the standard input of >> .\"O .IR command2 . >> .\"O This connection is performed before any redirections specified by the >> .\"O command (see >> .\"O .SM >> .\"O .B REDIRECTION >> .\"O below). >> .I command >> の標準出力は >> .IR command2 >> の標準入力に接続されます。 > > "via a pipe" が原文に追加されています。 「接続されます」の前に「パイプで」を追加しました。 >> \fIリスト (list)\fP とは、1つ以上のパイプラインを演算子 >> .BR ; , >> .BR & , >> .BR && , >> .BR || , >> のいずれかで区切って並べ、最後に >> .BR ; , >> .BR & , >> .BR <newline> . >> のいずれか (これは省略可能です) を置いたものです。 > > 「.BR || ,」と「.BR <newline> .」の最後のカンマとピリオドが不要です。 長南さんのレビューで変更しました。 > 括弧内の「これは省略可能です」がどこに係るのか分かりにくかったです。 > 「最後に〜のいずれかを置いたもの」の前で一度文を切ってしまうのはいかがでしょうか。 > 「〜で区切って並べたものです。パイプラインの最後に〜のいずれかを置いてもよい。」 > のような感じを考えました。 「で区切って並べたものです。パイプラインの最後に〜 のいずれかを置くこともできます」と変更しました。 >> .\"O Of these list operators, >> .\"O .B && >> .\"O and >> .\"O .B || >> .\"O have equal precedence, followed by >> .\"O .B ; >> .\"O and >> .\"O .BR & , >> .\"O which have equal precedence. >> リスト演算子のうち、 >> .B && >> と >> .B || >> の優先順位は同じです。これらの次に、 >> .B ; >> と >> .BR & , >> が同じ優先順位で続きます。 > > ここも「.BR & ,」の最後のカンマが不要です。 長南さんのレビューで変更しました。 >> .\"O An OR list has the form >> .\"O .RS >> .\"O .PP >> .\"O \fIcommand1\fP \fB||\fP \fIcommand2\fP >> .\"O .PP >> .\"O .RE >> .\"O .PP >> .\"O .I command2 >> .\"O is executed if and only if >> .\"O .I command1 >> .\"O returns a non-zero exit status. >> OR リストは >> .RS >> .PP >> \fIcommand1\fP \fB\(bv\(bv\fP \fIcommand2\fP > > 原文の方は「\fB\(bv\(bv\fP」が「\fB||\fP」に変更されています。 原文どおりに変更しました >> .\"O .SS Compound Commands >> .SS 複合コマンド(Compound Commands) > > 括弧の前に空白がありません。 空白を追加しました。 >> .\"O Word splitting and pathname expansion are not performed on the words >> .\"O between the \fB[[\fP and \fB]]\fP; tilde expansion, parameter and >> .\"O variable expansion, arithmetic expansion, command substitution, process >> .\"O substitution, and quote removal are performed. >> .\"O Conditional operators such as \fB\-f\fP must be unquoted to be recognized >> .\"O as primaries. >> 単語分割とパス名展開は \fB[[\fP と \fB]]\fP >> の間の単語に対しては行われません。 >> チルダ展開、パラメータと変数の展開、算術式展開、コマンド置換、 >> プロセス置換、クォート除去は実行されます。 >> \fB\-f\fP などの条件演算子は最初に認識されるため、クォートしてはいけません。 > > 最後の文ですが、 > -f などの条件演算子は、プライマリと認識させるためには、クォートしてはいけません。 > ではないでしょうか。 長南さんのレビューで変更しました。 >> .\"O When used with \fB[[\fP, the \fB<\fP and \fB>\fP operators sort >> .\"O lexicographically using the current locale. >> \fB[[\fP においては、\fB<\fP 演算子と \fB>\fP 演算子は、 >> 現在のロケールにおける辞書順を表します。 > > 原文が説明不足なのですが、< や > の演算子なので、大小比較を行うはずです。 > 現在のロケールに置ける辞書順での比較を行うということでしょうか。 「〜辞書順で比較します」と変更しました。 >> .\"O When the \fB==\fP and \fB!=\fP operators are used, the string to the >> .\"O right of the operator is considered a pattern and matched according >> .\"O to the rules described below under \fBPattern Matching\fP. >> .\"O If the shell option >> \fB==\fP 演算子と \fB!=\fP 演算子が使われたとき、 >> 演算子の右の文字列はパターンと解釈され、 >> 後述の\fBパターンマッチング\fPで説明する規則に従ってマッチングが行われます。 >> シェルオプション >> .B nocasematch >> .\"O .B nocasematch >> .\"O is enabled, the match is performed without regard to the case >> .\"O of alphabetic characters. >> .\"O The return value is 0 if the string matches (\fB==\fP) or does not match >> .\"O (\fB!=\fP) the pattern, and 1 otherwise. >> .\"O Any part of the pattern may be quoted to force it to be matched as a >> .\"O string. >> が有効であれば、 >> アルファベットの大文字と小文字を考慮せずにマッチングが行われます。 >> 返り値は、文字列がマッチしたとき (\fB==\fP) またはマッチしなかったとき >> (\fB!=\fP) に 0 となり、そうでない場合に 1 となります。 > > 返り値の説明が少し分かりにくいかなと感じました。 > 「(==)」「(!=)」を「(== の場合)」、「(!= の場合)」のようにするのは > いかがでしょうか。 長南さんのレビューで変更しました。 >> パターン中のどの部分でも文字としてマッチングさせるにはクォートします。 > > パターン中のどの部分でも、クォートすることで、強制的に文字として > マッチさせることができます。 > などはいかがでしょうか。 長南さんのレビューと合わせ、以下のように変更しました。 パターン中のどの部分でも、クォートすることで、 ただの文字列としてマッチングさせることができます。 >> .\"O First, the arithmetic expression \fIexpr1\fP is evaluated according >> .\"O to the rules described below under >> .\"O .SM >> .\"O .BR "ARITHMETIC EVALUATION" . >> .\"O The arithmetic expression \fIexpr2\fP is then evaluated repeatedly >> .\"O until it evaluates to zero. >> .\"O Each time \fIexpr2\fP evaluates to a non-zero value, \fIlist\fP is >> .\"O executed and the arithmetic expression \fIexpr3\fP is evaluated. >> .\"O If any expression is omitted, it behaves as if it evaluates to 1. >> .\"O The return value is the exit status of the last command in \fIlist\fP >> .\"O that is executed, or false if any of the expressions is invalid. >> 最初に、算術式\fIexpr1\fPが、後述の >> .SM >> .BR 算術式評価 >> で説明される規則に従って評価されます。 >> 次に、算術式\fIexpr2\fPがゼロになるまで繰り返し評価されます。 >> 算術式\fIexpr2\fPの評価結果がゼロでなければ、そのたびごとに\fIlist\fPが実行され、 >> 算術式\fIexpr3\fPが評価されます。 > > expr2 の前後にスペースが入っていません。 元木さんのパッチにより修正しました。 >> .\"O The list of words following \fBin\fP is expanded, generating a list >> .\"O of items. The set of expanded words is printed on the standard >> .\"O error, each preceded by a number. If the \fBin\fP >> .\"O \fIword\fP is omitted, the positional parameters are printed (see >> .\"O .SM >> .\"O .B PARAMETERS >> .\"O below). The >> .\"O .SM >> .\"O .B PS3 >> .\"O prompt is then displayed and a line read from the standard input. (略) >> \fBin\fP に続く単語のリストが展開され、要素のリストが生成されます。 >> 展開された単語の集合が番号付きで標準エラー出力に出力されます。 >> 「\fBin\fP \fIword\fP」が省略された場合、 >> 位置パラメータが出力されます (後述の >> .SM >> .B パラメータ >> を参照)。続いて >> .B PS3 >> が表示され、標準入力から 1 行の読み込みが行われます。 > > 原文と同じように、「PS3 プロンプト」のように、 > 「プロンプト」を入れてはいかがでしょうか。 「プロンプト」を追加しました。 >> .\"O The \fBwhile\fP command continuously executes the list >> .\"O \fIlist-2\fP as long as the last command in the list \fIlist-1\fP returns >> .\"O an exit status of zero. The \fBuntil\fP command is identical >> .\"O to the \fBwhile\fP command, except that the test is negated; >> .\"O .I list-2 >> .\"O is executed as long as the last command in >> .\"O .I list-1 >> .\"O returns a non-zero exit status. >> \fBwhile\fP コマンドは、\fIlist-1\fP 中の最後のコマンドが終了ステータス >> 0 を返すまで、繰り返して \fBdo\fP \fIlist-2\fP を実行します。\fBuntil\fP > > \fBdo\fP は不要だと思います。変更前の原文にはありましたが、 > 今は削除されています。 削除しました。 >> .\"O The file descriptors can be utilized as arguments to shell commands >> .\"O and redirections using standard word expansions. >> .\"O The process ID of the shell spawned to execute the coprocess is >> .\"O available as the value of the variable \fINAME\fP_PID. >> .\"O The \fBwait\fP >> .\"O builtin command may be used to wait for the coprocess to terminate. >> ファイル・ディスクリプターは、標準的な単語展開により、 >> シェルのコマンドの引き数やリダイレクションに指定できます > > 文末尾の「。」がありません。 句点を追加しました。 >> コプロセスの実行で生成されたシェルのプロセス ID は、変数 >> \fINAME\fP_PID の値になります。 >> コプロセスの終了を待つには、組み込みコマンド \fBwait\fP を使います。 >> .PP >> .\"O The return status of a coprocess is the exit status of \fIcommand\fP. >> コプロセスの返却ステータスは、\fIcommand\fP の終了ステータスです。 >> .\"O The exit status of a function definition is zero unless a syntax error >> .\"O occurs or a readonly function with the same name already exists. >> .\"O When executed, the exit status of a function is the exit status of the >> .\"O last command executed in the body. (See >> .\"O .SM >> .\"O .B FUNCTIONS >> .\"O below.) >> 関数定義の終了ステータスは、文法エラーが置きた場合や、 >> 読み込み専用の関数が同じ名前で定義れていた場合を除き、0 です。 >> >> 関数を実行したときの終了ステータスは、実体の中で最後に実行されたコマンドの終了ステータスになります (後述の >> .SM >> .B 関数 >> を参照) > > 一番最後の句点がありません。 句点を追加しました。 また、前のメールから。 >> > 「( と ) と違い」は「( や )」の方が自然だと思います。「{ と }」は >> > 「と」でも「や」でもよさそうです。もっとも、「と」と「や」では >> > ニュアンスがちょっと違いますけれど。 >> > >> > 「と」を使うのであれば、「( と ) の組 (あるいは、対) とは違い」とか、 >> > 「( と ) はメタ文字だが」とするところでしょう。 >> >> 「( と ) の組」に変更しました。 >> 直後の「{ と }」も「{ と } の組」としました。 > > 「組」という表現には私は違和感を感じます。 > { と } のそれぞれが予約語であり、ペアが予約語という訳ではないと思います。 > もちろん使うときには、ペアで使用しますが。 > > メタ文字である ( や ) と値が違い、 { と } は予約語であり・・・ > > などはいかがでしょうか。長南さんの最初の案と同じです。 「メタ文字である ( や ) と違い、{ と } は予約語であり」に変更しました。 -- Masakazu Takahashi (emasaka)