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

Back to archive index

Akihiro MOTOKI amoto****@gmail*****
2011年 10月 18日 (火) 01:54:59 JST


元木です。こんばんわ。

At Fri, 14 Oct 2011 23:07:14 +0900 (JST),
長南洋一 wrote:
> >>>> .B LINENO
> >>>> .\"O Each time this parameter is referenced, the shell substitutes
> >>>> .\"O a decimal number representing the current sequential line number
> >>>> .\"O (starting with 1) within a script or function.  When not in a
> >>>
> >>>> この変数が参照されると、
> >>>> シェルはスクリプトや関数における現在の行番号 (1から始まります) を表す
> >>>> 10 進値を代入します。スクリプトや関数の内部でない場合には、
> 
> >>>  この変数が参照されるたびに、シェルはスクリプトや関数における現在の
> >>>  行番号 (1 から始まります) を表す10 進数を代入し直します。
> >>>
> >>> 一例として前の訳をいじってみましたが、この方が具体的でしょう。
> >> 
> >> 前のメールに書いたように、「代入」はおかしいと思います。
> >> each や substitute を生かすということで、以下のように変更します。
> >> 
> >>     この変数が参照されると、その場所ごとに、
> >>     スクリプトや関数における現在の行番号 (1 から始まります) を表す
> >>     10 進値に置き変わります。
> > 
> > 「Each」のニュアンスが「current」に含まれるとのコメントがありましたが、
> > 著者が「Each time ...」といっているのは、普通のシェル変数は値を保持していて、
> > 何度参照されても保持している値を返すだけなのに対して、
> > LINENO の場合には、変数が参照された際に、(保持している値を返すのではなく)
> > 「その都度」変数の内容を更新して返す、ということを言いたかったのでは
> > ないでしょうか。
> > 
> > substitute についてですが、
> > 変数の内容を変更する行為は「代入」(substitution) というと思います。
> > LINENO という変数を参照する側から見ると、LINENO の内容が更新されているので、
> > 「代入」という表現は正しいのではないでしょうか。
> 
> 「『代入』(substitution)」というのは、どこの英和辞書に出ていましたか。
> うちの「小学館ランダムハウス」の substitution には、「代理、代用、
> 取替え、交換、置換」しか出ていませんでした。それで、ちょっと気になって、
> 研究社「新和英大辞典 (第四版)」を引いてみたら、「代入」は
> 「[数] substitution」と訳してあります。びっくりしました。Web の
> 「英辞郎」でも、やっぱり substitute に「代入」がありました。
> 「代入」assign だけではないのですね。思い込みで「代入では言葉が
> 足りない」などと言って、高橋さんには悪いことをしました。

代入は substitution と assignment がありますが、
コンピュータでは assignment を使うことが多いと思います。
変数の代入は普通 assignment ですね。

個人的な印象と断っておきますが、
assignment の方は変数の参照先を返るイメージですが、
substitute だと置き換えるといったイメージを持っています。

ただ、著者もそこまで厳密に考えずに文を書いているかもしれませんので、
substitute と assignemnt を同じような意味で書いているかもしれません。

> > 案を考えてみました。いかがでしょうか?
> > 
> >   この変数が参照されるたびに、シェルはスクリプトや関数における現在の行番号
> >   (1 から始まります) を表す 10 進数をこの変数に代入します。
> 
> 「たびに」があれば、「代入し直す」という必要はなかったのですね。
> でも、高橋さんの訳をちょっと変更した
> 
>   この変数は、参照されるたびに、スクリプトや関数における現在の行番号
>   (1 から始まります) を表す 10 進数に置き換わります。
> 
> もあると思います。「シェルは ... この変数に」と主語と対象を出した方が
> 明晰でしょうけれど。

そうですね。
substitute は、交代要因を送り込むとか、入れ替わる/置き換わるといった
イメージですし、それを反映しているようにも思います。
要は、毎回呼ばれるたびに更新されることが伝わればよいかと。

-- 
Akihiro MOTOKI <amoto****@gmail*****>




linuxjm-discuss メーリングリストの案内
Back to archive index