[JM:00532] Re: bash.1 の翻訳で意見が分かれています

アーカイブの一覧に戻る

長南洋一 cyoic****@maple*****
2011年 12月 26日 (月) 22:35:05 JST


長南です。

ご意見、ありがとうございます。

大谷さんのメールより [JM:00530]
>
>> 要するに、"Bash uses the value of the variable formed from the rest of
>> parameter as the name of the variable" の as の付き方の解釈が、わたしと
>> 高橋さんで違うわけです。
> 
> !を除いた残りが変数(名)であることは、the variable formed from the rest of
> parameter で示されているので、
> Bash uses the value (of the variable formed 〜) as the name (of the variable)
> という構造だと思います。

ええ、そう読むのが自然でしょう。自然に読んで筋が通るならば、たいてい
それが正しいと思います。

> で、セミコロンの直後の this variable は セミコロン直前の the variable のこと。
> ということは、長南さんと同じと言うことかな?

Bash uses the value ... as the name と解釈すれば、当然そうなるわけです。
 
> 私が訳すなら、
>   parameter の最初の文字が感嘆符ならば、変数間接展開が行われます。
>   bash は残りの parameter からなる変数の値を変数の名前と見なします。
>   そしてそこで得られた名前の変数を展開した値を、置換処理の続きで使います。
>   これが間接展開です。
> 
> "そこで得られた名前の"は原文に無い追加です(2つの「変数」の区別のため)。

そのへんは、工夫のしどころですね。

> rather than 節はくどいので省略。

くどくても、省略しない方がよいと思います。立花さんへの返信にも
書きましたが、このパラグラフは、言わば、${parameter} の項の
補足説明であり、rather than 以下は、${parameter} の説明の
"The  value of parameter is substituted."と対照になっています。
つまり、原文の筆者は、「${parameter} は、普通は parameter の
値に置換されるけれど、parameter が ! で始まっているときは、parameter
そのものの値に置換されない」ということを強調しておきたかったのだと
思います。「なぜなら ! は変数の一部ではなく、変数間接参照の
印なんだから」が、裏の意味ですね。

> the rest of the substitutionは、% や # や / 等による修正の事でしょう。

たとえば、${!AAA:-word} とか ${!AAA#word} のようなことをお考えに
なったのですね。魅力的な解釈ですし、おそらく原文の筆者もそれを意識して
いると思います。

とは言え、${!AAA} といったシンプルな場合もあり、このパラグラフで
考慮の対象にしているのは、むしろそちらの方でしょう。その場合は、
"the rest of the substitution" は、展開・置換という substitution
処理全体のうちの最後の段階、すなわち、${!AAA} を間接展開で得られた値に
置き換えることそのものしか指していないのではないでしょうか。

ですから、この部分で "in the rest of the substitution" の訳に
${!AAA:-word} や ${!AAA#word} の場合を匂わせすぎる言葉を使うのは、
ちょっと言いすぎと言うか、先取りのしすぎではないかと思います。
ここはやはり「置換の残りの過程」ぐらいに大人しく (${!AAA:-word} や
${!AAA#word} のことも考慮に入れていると言えば、言えないこともない
ように) 訳しておくところではないでしょうか。

> 高橋さんの解釈だと、the rest of the substitution は、AAA を展開した続き
> ですよね。そうだとすると、
> $ AAA=BBB/z/x ; BBB=zzz ; echo ${!AAA}
> xzz
> になって欲しいですね。ver4は手元に無いのでver3で試すとなりません。

これは、どういうことかわかりませんでした。立花さんが  [JM:00531] で
おっしゃっているようなことなんですか。

-- 
長南洋一




linuxjm-discuss メーリングリストの案内
アーカイブの一覧に戻る