[JM:00396] Re: [POST:DO] bash bash.1

Zurück zum Archiv-Index

Masakazu Takahashi emasa****@gmail*****
2011年 9月 14日 (水) 18:21:02 JST


2011/9/14 長南洋一 <cyoic****@maple*****>:
> 基本的に増補・改訂部分だけですが、「パラメータ」セクションの
> 前までざっとチェックしました。

チェックありがとうございます。
以下のとおり修正しました。

なお、修正したものは随時 GitHub 上のものに反映していますが、
メーリングリストにも都度流したほうがよいでしょうか?


>> .\"O .B Bash
>> .\"O can be configured to be POSIX-conformant by default.
>> .B Bash
>> はデフォルトで POSIX 適合に設定することもできます。
>
> こういう conformant は、普通「準拠」と言うのではありませんか。

「POSIX(に)適合」を「POSIX(に)準拠」に換えました(3 箇所、
必ずしも原文が「conformant」となっていないものも含め)。

> 前訳では、基本的に文頭でも bash のような英単語を小文字で始めています。
> その結果、新訳では、英単語が文頭に来た場合、語頭が大文字になったり
> 小文字になったりしています。

小文字始まりで統一しました。

>> .BI \-c "\| string\^"
>> .\"O If the
>> .B \-c
>> .\"O option is present, then commands are read from
>> .\"O .IR string .
>> オプションが指定されると、コマンドが
>> .IR string
>> から読み込まれます。
>
> 前訳では .IR string ではなく、 .I string になっています。
> マクロ .IR は man 7 man によれば、「(後に続く引き数を) イタリック
> (下線) とローマンを交互に (して、表示する)」ということです
> (つまり、原文なら、string をイタリックに、ピリオドをローマンにする)。
> 一方、マクロ .I の方は、後に続く引き数を全部イタリックにするです。
> ですから、前訳の .I string の方が正しい表記なのですが、この場合
> どちらでも表示に変わりがなさそうなので、.IR string のままでも
> 構わないと思います。

roff 形式がよくわかっていないのですが、これは、続く引き数が 1 つであれ
ば .I が正しいという理解でよろしいでしょうか。

私の理解が追いついていないので、単純なルールが適用できるのであれば変更
しますし、判断が必要で実害がなければ原文準拠が安全かと思っています
(安全側に倒れる、という意味で)。

>> .\"O If \fIshopt_option\fP is not supplied, the names and values of the shell
>> .\"O options accepted by \fBshopt\fP are printed on the standard output.
>> .\"O If the invocation option is \fB+O\fP, the output is displayed in a format
>> .\"O that may be reused as input.
>> \fIshopt_option\fP を指定しない場合、
>> \fBshopt\fP で指定できるオプションの名前と値が標準出力に表示されます。
>> このとき、入力として再利用できる形で出力されます。
>
> If the invocation option is \fB+O\fP の訳が抜けています。
> ここは、引き数なしの bash -O と bash +O の違いを説明しているんでしょう。

なるほど、bash -O と bash +O で挙動が違うんですね。
「\fB+O\fP では、」を追加しました。

> それから、何故原文が used ではなく、reused を使っているのか、わたしには
> わかりません。少なくとも、日本語では「再利用」ではなく、「利用」だけで
> よいような気がしますが、どうなんでしょうか。

出力した内容をリサイクルするイメージではないでしょうか。

>> .B \-\-debugger
>> .\"O Arrange for the debugger profile to be executed before the shell
>> .\"O starts.
>> シェルの実行を開始する前に、デバッグモードを準備します。
>
> 要約のしすぎのような気もします。もっとも、debugger profile の
> 説明がこのマニュアルにはないようですから、こう訳すよりなかった
> のかもしれませんが。

直訳調でいくと「デバッガー設定」とでもなるでしょうか。
ここについては、よい代案がなければ、今のままにしておきます。

>> .\"O If
>> .\"O .B bash
>> .\"O is invoked in this fashion,
>> .\"O .B $0
>> .\"O is set to the name of the file, and the positional parameters
>> .\"O are set to the remaining arguments.
>> このように
>> .B bash
>> が起動された場合、
>
> 「このように」がちょっと舌足らずな気がします。「このようにして」
> 「このような形で」「こうしたやり方で」など、いろいろ考えられる
> ところです。

「このような形で」に変更しました。

>> .\"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) かどうかを調べます。
>
> 現行訳を引き継いでいますが、端折りすぎではないでしょうか。determine
> when it is being run with its standard input connected to a network
> connection と具体的なことを言っていますから、省略すべきではないと
> 思います。

「標準入力がネットワークに接続されて起動されたどうかにより、」を追加しました。

>> .\"O .B word
>> .\"O A sequence of characters considered as a single unit by the shell.
>> .\"O Also known as a
>> .\"O .BR token .
>> .B 単語 (word)
>> シェルが 1 単位とみなす文字並び。
>> .BR トークン(token)
>> とも言われます。
>
> 「文字並び」という言葉は、日本語として無理なのでは?

「文字の並び」に変更しました。

>> .\"O .B control operator
>>.\"O A \fItoken\fP that performs a control function.  It is one of the following
>> .\"O symbols:
>> .B 制御演算子 (control operator)
>> 制御機能を持つ \fIトークン\fP。
>> 以下の文字のうちのいずれかです:
>
> ほかの定義の項目を見ても、文字 (character) という言葉は、一文字の
> 意味で使われています。制御演算子には、|| や && のような二字のものも
> ありますから、ここでは「文字」よりも、現行訳どおり「シンボル」を
> 使った方がよいと思います。

「シンボル」に変更しました。

>> .\"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 の訳が抜けています。

「これは 0 番目の引き数となります。」を追加しました。

>> .\"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 つ以上のコマンド列です。
>
> a sequence of one or more commands と「1 つ以上のコマンド列」は
> 別物だと思います。「コマンド列」という言い方が無理なのかもしれません。

「コマンド列」を「コマンドの並び」に変更しました(全体で 4 箇所)。

>> .\"O The return status of a pipeline is the exit status of the last
>> .\"O command, unless the \fBpipefail\fP option is enabled.
>> .\"O If \fBpipefail\fP is enabled, the pipeline's return status is the
>> .\"O value of the last (rightmost) command to exit with a non-zero status,
>> .\"O or zero if all commands exit successfully.
>> \fBpipefail\fP オプションが有効になっている場合を除き、
>> パイプラインの返却ステータスは最後のコマンドの終了ステータスになります。
>> \fBpipefail\fP が有効になっている場合には、
>> パイプラインの返却ステータスは 0 以外のステータスを返した最後の
>> (一番右の) コマンドの値になり、
>> 全てのコマンドが正常終了した場合には 0 になります。
>
> 翻訳の最後の四行の論理が、わかりにくいと思います。

以下のように変更してみました。

\fBpipefail\fP が有効になっている場合には、
0 以外のステータスを返した最後の (一番右の) コマンドの値が
パイプラインの返却ステータスになり、
全てのコマンドが正常終了した場合にのみ 0 になります。

>> .\"O If the reserved word
>> .\"O .B !
>> .\"O precedes a pipeline, the exit status of that pipeline is the logical
>> .\"O negation of the exit status as described above.
>> .\"O The shell waits for all commands in the pipeline to
>> .\"O terminate before returning a value.
>> パイプラインの前に、予約語である
>> .B !
>> がある場合、
>> そのパイプラインの終了ステータスは上記の終了ステータスの
>> NOT を取ったものになります。
>> 値を返す前に、シェルはパイプライン中の全てのコマンドが終了するのを待ちます。
>
(略)
> だったら、「上記の
> 終了ステータスを論理否定したもの」などはどうでしょう。

この訳文を反映しました。

>> .\"O When the shell is in \fIposix mode\fP, it does not recognize
>> .\"O \fBtime\fP as a reserved word if the next token begins with a `-'.
>> シェルが \fIposix モードのときには、
>> 後に続くトークンが `-' であれば \fBtime\fP を予約語と認識しません。
>
> \fIposix は 後ろの \fP が欠けています。そのため、下線が「認識しません」
> まで伸びてしまっています。「\fIposix\fP モード」か「\fIposix モード\fP」
> にすること。

修正しました。

> 「後に続くトークンが `-' であれば」は、「後に続くトークンが `-' で
> 始まるものであれば」か「後に続くのが `-' で始まるトークンであれば」
> でしょう。

「後に続くのが `-' で始まるトークンであれば」に変更しました。

> ところで、この一節はどういう意味なんでしょうか。
> POSIX モードで time -p find . -mtime 0 | grep 'txt' とでもすると、
> ビルトインコマンドの time ではなく、/usr/bin/time が使われるとでも
> いうことなんでしょうか。

たとえば、bash 4.2 で以下のコマンドを実行してみます。

time -p : 2> /dev/null

通常の bash では time は予約語であってコマンドではないので、time の出力
はリダイレクト対象にならず、端末に表示されます。いっぽう、bash --posix
で起動したときには、上記の time はコマンドとして扱われるので、出力がリ
ダイレクト対象となり、端末に表示されません。

>> .\"O When the shell is in \fIposix mode\fP, \fBtime\fP
>> .\"O may be followed by a newline.  In this case, the shell displays the
>> .\"O total user and system time consumed by the shell and its children.
>> シェルが \fIposix モードのときには、\fBtime\fP の直後が改行でもかまいません。
>> この場合、シェルと子プロセスが消費したユーザ時間とシステム時間を出力します。
>
> ここでも \fIposix の後ろ (あるいは、「モード」の後ろ) に \fP が
> ありません。

修正しました。

> total が訳から抜けています。もっとも、なくても大体わかりますけれど。

「消費した」の前に「それまでに」を追加しました。

> このパラグラフも、何を言っているのかわたしにはわかりません。
> time[改行] と打ち込んだら、POSIX モードであろうとなかろうと、
>
>  real    0m0.000s
>  user    0m0.000s
>  sys     0m0.000s
>
> と出力されるだけではないのでしょうか。

bash 4.2 を bash --posix で起動して引き数なしの time を実行したところ、
それまでに実行したコマンドの消費時間が表示されました。最近のバージョン
の挙動かもしれません。

>> .\"O The
>> .\"O .B TIMEFORMAT
>> .\"O variable may be used to specify the format of
>> .\"O the time information.
>> このときにも、経過時間情報のフォーマット指定に変数
>> .SM
>> .B TIMEFORMAT
>> が使われます。
>
> 「使われます」だと、ただの受身になってしまいます。「使えます」の方が
> よいのではないでしょうか。

以下のように変更しました。

このときにも、経過時間情報のフォーマットを変数
.SM
.B TIMEFORMAT
で指定できます。

>> \fIリスト (list)\fP とは、1つ以上のパイプラインを演算子
>> .BR ; ,
>> .BR & ,
>> .BR && ,
>> .BR || ,
>> のいずれかで区切って並べ、最後に
>
> 翻訳だけ引用しましたが、この「.BR || ,」の最後のコンマも要らないと
> 思います。

削りました。

>> .\"O A sequence of one or more newlines may appear in a \fIlist\fP instead
>> .\"O of a semicolon to delimit commands.
>> \fIリスト\fP 中では、コマンドの区切りとして、
>> セミコロンの代わりに一つ以上の改行の並びが使われることもあります。
>
> 「一つ以上の改行の並び」は、意味はわかりますが、日本語らしくない
> 気がします。「一つ以上の連続する改行が」とか、「一つ以上の改行が
> 続けて」などの方が自然ではないでしょうか。

日本語としての自然さと、改行が 1 つであることがメインあることから、
「の並び」を削りました。

> とは言え、ここも意味がよくわかりません。for i in *; do echo $i; done
> の代わりに、
>
>  $ for i in *
>  > do
>  > echo $i
>  > done
>
> と打ち込むこともできますが、それを言っているのでしょうか。

はい。あるいは

{ foo ; bar ; baz; }

を

{
    foo
    bar
    baz
}

と書けるというのも同じかと思います。

>> .\"O Note that unlike the metacharacters \fB(\fP and \fB)\fP, \fB{\fP and
>> .\"O \fB}\fP are \fIreserved words\fP and must occur where a reserved
>> .\"O word is permitted to be recognized.  Since they do not cause a word
(略)
>> メタキャラクターである \fB(\fP と \fB)\fP と違い、 \fB{\fP と \fB}\fP は \fI予約
>> 語\fP であり、予約語として認識される場所に現われる必要があることに注意してください。
(略)
> 「メタキャラクター」は「定義」では「メタ文字」でした。

「メタ文字」に変更しました。

> 「( と ) と違い」は「( や )」の方が自然だと思います。「{ と }」は
> 「と」でも「や」でもよさそうです。もっとも、「と」と「や」では
> ニュアンスがちょっと違いますけれど。
>
> 「と」を使うのであれば、「( と ) の組 (あるいは、対) とは違い」とか、
> 「( と ) はメタ文字だが」とするところでしょう。

「( と ) の組」に変更しました。
直後の「{ と }」も「{ と } の組」としました。

>> .\"O Conditional operators such as \fB\-f\fP must be unquoted to be recognized
>> .\"O as primaries.
>
>> \fB\-f\fP などの条件演算子は最初に認識されるため、クォートしてはいけません。
>
> as primaries の primaries は、すぐ上にある「式は後述の条件式で説明する、
> プライマリによって構成されます」の「プライマリ」だと思います。
> 訳例をあげると、「-f などの条件演算子がプライマリとして認識される
> ためには、クォートされていてはいけません」。

この訳文を反映しました。

>> シェルオプション
>> .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 となります。
>> パターン中のどの部分でも文字としてマッチングさせるにはクォートします。
>
> 「文字列がマッチしたとき (==) またはマッチしなかったとき(!=) に 0 となり」
> というのは、わかりにくいと思います。
>
>  返り値は、文字列がマッチしたとき (== の場合)、あるいはマッチしなかった
>  とき (!= の場合)、0 になり、そうでない場合は 1 になります
>
> とするか、
>
>  返り値は、== 演算子では文字列がマッチしたとき、!= 演算子では文字列が
>  マッチしなかったとき、0 になり ...
>
> とした方が、わかりやすいのではないでしょうか。

後者を反映しました。

> 「パターン中のどの部分でも文字としてマッチングさせるにはクォートします」
> は string だから「文字列」ですが、言っていることがわかりません。
> 仮にパターンの中に * ? [  ] といったメタ文字が含まれていても、クォート
> すれば、普通の文字からなる文字列として扱われるということでしょうか。
> だとしたら、「パターンの任意の部分をクォートして、文字列としてマッチ
> させることもできます」という、現行訳も悪くないと思います。ただし、
> 「文字列」を「ただの文字列」とした方がよいと思いますが。
>
> うーん、string は「文字列」ですが、上のように考えると、「文字」と
> 訳す手もたしかにありますね。根本的に、原文が言葉足らずなんだと
> 思います。

「ただの文字列」と変更しました。

>> .\"O Any part of the pattern may be quoted to force it to be matched as a
>> .\"O string.
>> .\"O Substrings matched by parenthesized subexpressions within the regular
>> .\"O expression are saved in the array variable
>
>> パターン中のどの部分でも文字としてマッチングさせるにはクォートします。
>
> 二項演算子 =~ の説明中に、もう一度、出てきました。

同じく「ただの文字列」と変更しました。

>> .\"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.
>
>> どの算術式も省略された場合は、
>> 評価結果が 1 とみなされた場合のように振舞います。
>> 返却ステータスは \fIlist\fP 中で実行された
>> 最後のコマンドの終了ステータスとなりますが、
>> 算術式のいずれかが無効である場合には不正な値となります。
>
> 「どの算術式も省略された場合は」だと、「すべての算術式が省略された場合」
> とも、読めてしまいます。「どの算術式も、省略された場合は」と点を
> 打つか、「どの算術式であれ省略された場合は」とするか。ほかの訳し方も
> ありますけれど。

読点を打ちました。

> 「評価結果が 1 とみなされた場合のように振舞う」は、「評価結果が
> 1 になった場合のように振舞います」か「評価結果を 1 とみなして、
> そのように振舞います」か。

「評価結果が 1 であったものとして振舞います」と変更しました

> 返却ステータスが「不正な値」というのは、どういうことなのでしょうか。

「算術式のいずれかが不正である場合には偽となります」と変更しました。

> 次の部分は case 文の説明にあります。
>
>> .\"O Each \fIpattern\fP examined is expanded using tilde
>> .\"O expansion, parameter and variable expansion, arithmetic substitution,
>> .\"O command substitution, and process substitution.
>
>> それぞれの \fpattern\fP は、チルダ展開、パラメータと変数の展開、
>> 算術式展開、コマンド置換、プロセス置換、クォート除去のうえで比較されます。
>
> \fpattern\fP は \fIpattern\fP です。I が必要。

修正しました。

>> パターン中のどの部分でも文字としてマッチングさせるにはクォートします。
>
> この訳文に相当する英文が case 文の説明には存在しないようです。

削りました。

> if の説明中の
>
>> .\"O \fBthen\fP \fIlist\fP is executed.  Otherwise, each \fBelif\fP
>> .\"O \fIlist\fP is executed in turn, and if its exit status is zero,
>> .\"O the corresponding \fBthen\fP \fIlist\fP is executed and the
>> .\"O command completes.  Otherwise, the \fBelse\fP \fIlist\fP is
>
>> そうでなければ \fBelif\fP \fIlist\fP がそれぞれ順番に実行され、
>> この終了ステータスが 0 ならば、対応する \fBthen\fP \fIlist\fP
>> が実行され、コマンドが終了します。
>
> 「この終了ステータス」は「その終了ステータス」でなければ、おかしいと
> 思うのですが、細かすぎるでしょうか。

指示代名詞だと不明瞭なようですので、上の if list ともども、
「list の終了ステータス」と変更しました。

>> .\"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
>> コマンドは \fBwhile\fP コマンドとほぼ同じですが、
>> 評価の条件が否定となる点が異なります。
>> .I list-2
>>>> .I list-1
>> 中の最後のコマンドが
>> 0 以外の終了ステータスを返す限りずっと実行されます。
>
> as long as the last command ...  returns an exit status of zero
> ですから、「ゼロを返すまで」ではなく、「ゼロを返す間 (あるいは、限り)」
> ではありませんか。

「返す間」と変更しました。

> the test is negated は、意訳するなら、「評価の条件が否定となる」
> というよりも、「評価の条件が逆になる」ではないでしょうか。
> もちろん、ほかの訳し方もあるでしょうけれど。

「逆」と変更しました。

>> .\"O A \fIcoprocess\fP is a shell command preceded by the \fBcoproc\fP reserved
>> .\"O word.
>> .\"O A coprocess is executed asynchronously in a subshell, as if the command
>> .\"O had been terminated with the \fB&\fP control operator, with a two-way pipe
>> .\"O established between the executing shell and the coprocess.
>> \fIコプロセス (coprocess)\fP は、予約語 \fBcoproc\fP
>> で始まるシェルのコマンドです。
>
> 細かいですが、「コプロセスとは」と「と」を入れた方がよいかもしれません。

「コプロセスとは」〜「のことです」と変更しました。

>> .\"O The standard output of
>> .\"O .I command
>> .\"O is connected via a pipe to a file descriptor in the executing shell,
>> .\"O and that file descriptor is assigned to \fINAME\fP[0].
>
>> .I command
>> .\"O The standard input of    # 次の節の原文がここに来ている。

コメントの位置を移動しました。

>> の標準出力は、実行しているシェルのファイル・ディスクリプターと
>> パイプによって接続されます。
>> このファイル・ディスクリプターは \fINAME\fP[0] に代入されます。
(略)
> シェルのファイルディスクリプタと言っても、いくつもあるでしょうから、
> ちょっとくどくなりますが、「シェルのファイル・ディスクリプターの一つ」
> と言うべきではないでしょうか。

「の一つ」を追加しました。

>> .\"O A shell function is an object that is called like a simple command and
>> .\"O executes a compound command with a new set of positional parameters.
>> .\"O Shell functions are declared as follows:
>> シェル関数は、単純なコマンドとして呼び出されて、
>> 新しい位置パラメータのセットを持つ複合コマンドとして実行されるものです。

> 結局同じことかもしれませんが、「新しい位置パラメーターの一式を持つ
> 複合コマンドを実行するものです」でもよさそうです。

上の訳文を反映しました。

> これも、「シェル関数とは」とする手があります。

「とは」〜「のことです」と変更しました。

>> .\"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 関数
>> を参照)
>
> 誤字とタイポがあります。
> 「文法エラーが置きた」
> 「定義れていた」

修正しました。

> ここでも、一パラグラフの原文を二つに区切っていますが、どうせやるなら、
> 「関数定義の終了ステータスは」の前にも空行を設けて、三つに区切ったら
> どうでしょうか。あるいは、空行は「関数定義の終了ステータスは」の
> 前だけにするという行き方もあると思います。

すみません、空行は単なるミスでしたので削りました。
ほかの箇所でも意図していなかった空行を削りました。

>> .\"O .SH QUOTING
>> .SH クォート
>> .\"O \fIQuoting\fP is used to remove the special meaning of certain
>> .\"O characters or words to the shell.  Quoting can be used to
>
>> \fIクォート (quoting)\fP を使うと、
>> 特定の文字や単語のシェルに対する特別な意味を取り除けます。
>
> 「特別な意味を取り除けます」は、ちょっと日本語として苦しいのでは。

「特別な意味をなくします」と変更しました。

>> .\"O When the command history expansion facilities are being used
>> .\"O (see
>> .\"O .SM
>> .\"O .B HISTORY EXPANSION
>> .\"O below), the
>> .\"O \fIhistory expansion\fP character, usually \fB!\fP, must be quoted
>> .\"O to prevent history expansion.
>> 履歴展開の機能 (後述の
>> .SM
>> .B 履歴の展開
>> を参照)
>> が使われているときには、\fI履歴展開\fP 文字 (通常は \fB!\fP) は、
>> 履歴展開を防ぐためにクォートしなければなりません。
>
> command history expansion はここが初出ですから、「コマンド」を
> 省略しない方がよいと思います。

「コマンドの」を追加しました。

> 履歴展開をさせたくないときにのみ、! をクォートするのですから、
> 「履歴展開を防ぐためには」と「は」が要るのではないでしょうか。

「は」を追加し、一つ前の「は、」を「の」に変更しました。

>> .\"O Enclosing characters in double quotes preserves the literal value
>> .\"O of all characters within the quotes, with the exception of
>> .\"O .BR $ ,
>> .\"O .BR \` ,
>> .\"O .BR \e ,
>> .\"O and, when history expansion is enabled,
>> .\"O .BR ! .
>> .\"O The characters
>> .\"O .B $
>> .\"O and
>> .\"O .B \`
>> .\"O retain their special meaning within double quotes.  The backslash
>> .\"O retains its special meaning only when followed by one of the following
>> .\"O characters:
>> .\"O .BR \e ,
>> .\"O or
>> .\"O .BR <newline> .
>> .\"O A double quote may be quoted within double quotes by preceding it with
>> .\"O a backslash.
>> ダブルクォートで文字を囲むとクォート内部の全ての文字は文字としての値を
>> 保持しますが、
>> .BR $ ,
>> .BR \` ,
>> .BR \e ,
>> は例外となります。
>
> \e の後ろの , は要りません。

削りました。

>> 履歴展開が有効なときには、
>> .BR ! .
>> .B $
>>>> .B `
>> はダブルクォートの内部でも特殊な意味を失いません。
>
> 「.BR ! .」は、文がピリオドで終わっています。次のようにしないと、
> 意味がよく通じないのではないでしょうか (roff 形式で書きます)。
>
>  履歴展開が有効なときは、
>  .B !
>  がこれに (あるいは、この例外に) 加わります。
>  .B $
>>  .B \`
>  はダブルクォートの内部でも特殊な意味を失いません。

上の訳文を反映しました。

> 「.B `」は「.B \`」と書いた方がよさそうです。

変更しました。

-- 
Masakazu Takahashi (emasaka)




linuxjm-discuss メーリングリストの案内
Zurück zum Archiv-Index