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

Back to archive index

Masakazu Takahashi emasa****@gmail*****
2011年 10月 8日 (土) 21:29:40 JST


2011/10/7 長南洋一 <cyoic****@maple*****>:
> 長南です。

レビューありがとうございます。以下のとおり変更しました。

https://github.com/emasaka/bash-jman/commit/2c4c737de51863d022446fdd51b2b61a157eee73

>> .B BASHOPTS
>
>> .\"O If this variable is in the environment when
>> .\"O .B bash
>> .\"O starts up, each shell option in the list will be enabled before
>> .\"O reading any startup files.
>
>> もし
>> .B bash
>> を起動したときに、この変数が環境変数に設定されていれば、
>> 初期化ファイルを読み込む前に、リストにある全てのシェルオプションが
>> 有効に設定されます。
>
> startup files の訳語ですが ...。
> 元の翻訳では、startup file は「起動ファイル」、initialization file は
> 「初期化ファイル」と訳しています。「起動」セクションを読むと、システム
> ワイドの /etc/profile、個人用の ~/.bash_profile や ~/.bashrc などを
> すべてひっくるめて、startup file (起動ファイル) と呼んでいるようです。
> これに対して、intialization file (初期化ファイル) の方は、多くの場合
> personal initialization file という形で現れて、~/.bash_prifile や
> ~/.bashrc を指しています (「オプション」セクションも参照)。ただし、
> 例外が一つあり、「ファイル」セクションでは、/etc/profile を
> The systemwide initialization file (システム全体用の初期化ファイル)
> と言っています。
>
> というわけで、元訳に合わせるなら (と言うか、訳語の統一を考えるなら)、
> この startup files は (それから、SHELLOPTS や POSIXLY_CORRECT 変数の
> startup files も)「起動ファイル」になると思います。もっとも、厳密に
> 区別する必要はないとも考えられますけれど。

「起動ファイル」に変更しました。

> # statup file や initialzation file を検索したときに気づいたことを
> # 忘れないうちに書いておきます。
> #
> # --rcfile オプションの説明中、
> #
> # > .\"O Execute commands from
> # > .\"O .I file
> # > .\"O instead of the standard personal initialization file
> # > .\"O .I ~/.bashrc
> #
> # > 対話的シェルとして起動された場合、
> # > 個人用の初期化ファイル
> # > .I ~/.bashrc
> # > の代わりに
> # > .I file
> # > からコマンドを実行します (後述の
> #
> # standard の訳が抜けています。

「標準の」を追加しました。

>> .B BASHPID
>> .\"O Expands to the process ID of the current \fBbash\fP process.
>> .\"O This differs from \fB$$\fP under certain circumstances, such as subshells
>> .\"O that do not require \fBbash\fP to be re-initialized.
>> 現在の \fBbash\fP のプロセス ID に展開されます。
>> \fBbash\fP を再初期化しないサブシェルのような、いくつかの環境においては、
>> \fB$$\fP と値が異なります。
>
> 「bash を再初期化しない」と「bash の再初期化を必要としない」とでは、
> 少し違うのではないかと思うのですが、結局は同じことですか。

ここでの“require”は「求める」「命ずる」ぐらいのニュアンスかと思い、
「再初期化を命ずる」なら「再初期化する」がすっきりしているかと思います。

>> .B BASH_CMDS
>> .\"O An associative array variable whose members correspond to the internal
>> .\"O hash table of commands as maintained by the \fBhash\fP builtin.
>> .\"O Elements added to this array appear in the hash table; unsetting array
>> .\"O elements cause commands to be removed from the hash table.
>> 組み込みコマンド \fBhash\fP で扱うコマンドの内部的なハッシュテーブルに
>> 対応する連想配列変数です。
>> この配列に要素を追加すると、ハッシュテーブルにも追加されます。
>> 配列から要素を削除すると、ハッシュテーブルから削除されます。
>
> 英文と突き合わせて見ると、大胆な省略を行って、上手な訳だと思う
> のですが、訳文だけでは、「組み込みコマンド hash で扱う」が
> どこまでかかるか曖昧です。それに、「コマンドの内部的な」が
> 「コマンドの内部にハッシュテーブルがある」と取れてしまうと
> いうこともあります。
>
> こんな訳はどうでしょう。maintain は「管理」と訳してみました。
> 「操作」という訳もあるかもしれません。
>
>  bash が内部に持つ、コマンドのハッシュテーブルに対応する連想配列変数です。
>  通常ハッシュテーブルはビルトインコマンド hash で管理します。
>
> あるいは、
>
>  連想配列変数であり、各メンバ (訳語の統一を考えると「要素」か) は
>  bash が内部に持つコマンドのハッシュテーブルと対応しています。
>  ハッシュテーブルは、通常ビルトインコマンド hash で操作します。
>
> あるいは、今の訳文をできるだけ生かして、
>
>  通常は組み込みコマンド hash で管理する、bash 内部のコマンド・ハッシュ
>  テーブルに対応する連想配列変数です。
>
> # 「通常」という補足は、as maintained の as のニュアンスのつもりです。
> # 違うかもしれませんが。

1 つ目の案を元に変更しました。

> 翻って、BASH_ALIASES の訳についても同じことが言えます。
> BASH_ALIASES の場合は、「組み込みコマンド alias で扱う」が
> エイリアスに付いても、リストに付いても、意味が通るので気がつき
> ませんでした。
>
>> .B BASH_ALIASES
>> .\"O An associative array variable whose members correspond to the internal
>> .\"O list of aliases as maintained by the \fBalias\fP builtin.
>> .\"O Elements added to this array appear in the alias list; unsetting array
>> .\"O elements cause aliases to be removed from the alias list.
>> 組み込みコマンド \fBalias\fP で扱うエイリアスの内部的なリストに
>> 対応する連想配列変数です。
>> この配列に要素を追加すると、エイリアスのリストにも追加されます。
>> 配列から要素を削除すると、エイリアスがリストから削除されます。
>
>  bash が内部に持つ、エイリアスのリストに対応する連想配列変数です。
>  通常エイリアスのリストは組み込みコマンド alias で管理します。
>
> あるいは、
>
>  通常は組み込みコマンド hash で管理する、bash 内部のエイリアスの
>  リストに対応する連想配列変数です。

前者の案を元に変更しました。

>> .B BASH_COMMAND
>> .\"O The command currently being executed or about to be executed, unless the
>> .\"O shell is executing a command as the result of a trap,
>> .\"O in which case it is the command executing at the time of the trap.
>> 現在実行しているか実行しようとしているコマンドです。
>> ただし、トラップによりコマンドを実行しているときのコマンドは除きます。
>
> 「ただし」以下は、「ただし、トラップによって実行されるコマンドは
> 除きます」で十分では。あるいは、原文どおり「ただし、トラップの結果
> として、シェルが実行しているコマンドは除きます」か。
>
> それから、「in which case it is the command executing at the time of
> the trap」の訳が抜けています。

前者の指摘で削っている部分が後者の指摘の部分かと思います。

>> .B BASH_LINENO
>> .\"O An array variable whose members are the line numbers in source files
>> .\"O where each corresponding member of
>> .\"O .SM
>> .\"O .B FUNCNAME
>> .\"O was invoked.
>> ソースファイル中の行番号に対応する要素からなる配列変数で、
>> それぞれの要素は
>> .SM
>> .B FUNCNAME
>> の各要素が呼び出された位置に対応します。
>
> corresponding という言葉の意味を「それぞれ」と「各」の呼応にまかせて
> しまったのですね (つまり、訳文中の「対応する」は、原文の corresponding
> とは関係がない)。こなれた訳し方だと思います。
>
> 「ソースファイル中の行番号に対応する要素からなる配列変数で」の
> 「対応」の方は、厳密に言えば、配列の要素が行番号なのではなく、
> 要素の値が行番号なので、「対応」という間接的な言い方になさった
> のでしょうか。でも、間接的な分だけ、行番号と配列の要素との関係が
> 直感的につかみにくくなっていると思います。
>
> 「ソースファイル中の行番号を値とする要素からなる配列変数で」と
> はっきり言ってしまった方がよいのではないでしょうか。ちょっと冗長なので、
> 「ソースファイル中の行番号を要素の値とする配列変数で」も考えました。
> 「ソースファイル中の行番号を要素とする配列変数で」ですめば、一番
> すっきりするのですが、言葉が足りないでしょうか。

すっきりしたほうがいいということで、「ソースファイル中の行番号からなる
配列変数で」と変更しました。

> 「各要素が呼び出された位置に対応します」の方も、「... 位置を表します」
> などと言い換えることができますが、こちらは「対応します」のままで
> よさそうです。

「表します」が自分にはしっくりこなかったので、現在のままにしておきます。

>> .\"O \fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP is the line number in the source
>> .\"O file (\fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP) where
>> .\"O \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP was called
>> .\"O (or \fB${BASH_LINENO[\fP\fI$i-1\fP\fB]}\fP if referenced within another
>> .\"O shell function).
>> \fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP がソースファイル
>> (\fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP)
>> 中で\fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP が呼び出された行番号です。
>> 別のシェル関数から参照されると \fB${BASH_LINENO[\fP\fI$i-1\fP\fB]}\fP
>> になります。
>
> この文は、前の文を具体的に説明したものですから、「すなわち、
> ${BASH_LINENO[$i]} は」などとすると、前の文とのつながりが
> よくなるかもしれません。

「つまり ${BASH_LINENO[$i]} は」と変更しました。

> それから、(or ${BASH_LINENO[$i-1]} if referenced within another shell
> function) のカッコを省略なさっていますが、意図的なものですか。
> たしかに、このカッコはなくてもよいと思います。

はい。

>> .\"O Use
>> .\"O .SM
>> .\"O .B LINENO
>> .\"O to obtain the current line number.
>> 現在の行番号は
>> .SM
>> .B LINENO
>> です。
>
> 原文は、現在の行番号を知りたければ、BASH_LINENO ではなく、LINENO を
> 使え、と言っているのですから、Use LINENO to obtain を生かした方が
> よいのではないでしょうか。一般に原文の省略は、その方が文がわかりやすく
> なるとき以外、やらない方がよいと思います。

「現在の行番号は LINENO で取得できます」と変更しました。

>> .B BASH_SOURCE
>> .\"O An array variable whose members are the source filenames
>> .\"O where the corresponding shell function names in the
>> .\"O .SM
>> .\"O .B FUNCNAME
>> .\"O array variable are defined.
>> .\"O The shell function
>> ソースファイル名に対応する要素からなる配列変数で、
>> それぞれの要素は配列変数
>> .SM
>> .B FUNCNAME
>> の要素のシェル関数がそれぞれ定義されたファイル名に対応します。
>
> ここも corresponding を「それぞれ」に移しているわけですから、
> 「対応」という言葉はいらなくなっていると思います。
> 全文を書くと、
>
>  ソースファイル名を要素とする配列変数で、各要素は、配列変数
>  FUNCANAME の要素であるシェル関数がそれぞれ定義されている
>  ファイルの名前です。
>
> ソースファイル名は要素ではなく、要素の値だということなら、
>
>  ソースファイル名を要素の値とする配列変数で、各要素には、配列変数
>  FUNCANAME の要素 (の値) であるシェル関数がそれぞれ定義されている
>  ファイルの名前が入っています。

BASH_LINENO にならって、「ソースファイル名からなる配列変数で」と変更し
ました。

>> .B COMP_CWORD
>> .\"O An index into \fB${COMP_WORDS}\fP of the word containing the current
>> .\"O cursor position.
>> .\"O This variable is available only in shell functions invoked by the
>> .\"O programmable completion facilities (see \fBProgrammable Completion\fP
>> .\"O below).
>> 現在カーソル位置が置かれている単語の
>> \fB${COMP_WORDS}\fP におけるインデックスです。
>> この変数はプログラム補完機能 (後述の \fBプログラム補完\fP を参照)
>> から呼ばれたシェル関数においてのみ有効です。
>
> 「カーソル位置が置かれている」は重複表現のような気がします。
> 「カーソル位置がある」か「カーソルが置かれている」でよいのでは
> ないでしょうか。

前者で変更しました。

> 「${COMP_WORDS} における」は「配列変数 ${COMP_WORDS} における」と
> した方がよいかもしれません。

「配列変数」を追加しました。

> 語感の問題ですから、無視して構いませんが、available は「利用できる」
> と言った方が、具体的で明晰だと思います (available/有効は以下でも
> 何回か出てきました)。

変数は値が設定されてなくても参照はできることから、「利用できる」だと私
にはニュアンスとしてちょっとしっくりこないため、そのままにしておきます。

>> .B COMP_KEY
>> .\"O The key (or final key of a key sequence) used to invoke the current
>> .\"O completion function.
>> 現在の補完関数を呼び出したキー (またはキーシーケンスの最後のキー) です。
>
> この completion function は「関数」ではなく、「機能」ではないのですか。
> キーとかキーシーケンスというのは、「Readline のコマンド名」の「補完」に
> 書いてある complete (TAB) や possible-completions (M-?) の TAB や M-? の
> ことなんでしょうか。そこでは complete などは、セクション名にあるように、
> 関数ではなく、コマンドと呼んでいるようですが、Programmable Completion
> の場合は関数なんですか。

この function は関数ですね。コマンドでもいいです。

>> .B COMP_LINE
>> .\"O The current command line.
>> .\"O This variable is available only in shell functions and external
>> .\"O commands invoked by the
>> .\"O programmable completion facilities (see \fBProgrammable Completion\fP
>> .\"O below).
>> 現在のコマンドラインです。
>> この変数はプログラム補完機能 (後述の \fBプログラム補完\fP を参照)
>> から呼ばれたシェル関数においてのみ有効です。
>
> and external commands の訳が抜けています。

「や外部コマンド」を追加しました。

>> .B COMP_POINT
>> .\"O The index of the current cursor position relative to the beginning of
>> .\"O the current command.
>> .\"O If the current cursor position is at the end of the current command,
>> .\"O the value of this variable is equal to \fB${#COMP_LINE}\fP.
>> .\"O This variable is available only in shell functions and external
>> .\"O commands invoked by the
>> .\"O programmable completion facilities (see \fBProgrammable Completion\fP
>> .\"O below).
>> 現在のコマンドの先頭からの相対値として与えられた
>> カーソル位置のインデックスです。
>> 現在のカーソル位置が現在の現在のコマンドの最後にある場合、
>> この変数の値は \fB${#COMP_LINE}\fP と等しくなります。
>> この変数はプログラム補完機能 (後述の \fBプログラム補完\fP を参照)
>> から呼ばれたシェル関数においてのみ有効です。
>
> ここも and external commands の訳が抜けています。

「や外部コマンド」を追加しました。

> この「インデックス」は先頭から何番目の文字かということですね。
> それならば、正しい訳ですが、配列のインデックスとまぎらわしい
> と思います。何か適当な訳語を工夫できないでしょうか。

C をはじめ各プログラミング言語では文字列中の位置を「インデックス」
と呼ぶことも多いこと、補完関数を書く人はプログラミング経験のある人が
対象であることから、「インデックス」でよいかと思います。

(Ruby 言語のリファレンスマニュアルの例)
http://doc.okkez.net/static/192/method/String/i/index.html

>> .B COMP_TYPE
>> .\"O Set to an integer value corresponding to the type of completion attempted
>> .\"O that caused a completion function to be called:
>> .\"O \fITAB\fP, for normal completion,
>> .\"O \fI?\fP, for listing completions after successive tabs,
>> .\"O \fI!\fP, for listing alternatives on partial word completion,
>> .\"O \fI@\fP, to list completions if the word is not unmodified,
>> .\"O or
>> .\"O \fI%\fP, for menu completion.
>> .\"O This variable is available only in shell functions and external
>> .\"O commands invoked by the
>> .\"O programmable completion facilities (see \fBProgrammable Completion\fP
>> .\"O below).
>> 補完関数を呼び出した補完のタイプに対応する整数値が設定されます。
>> \fITAB\fP は通常の補完です。
>> \fI?\fP は連続したタブ入力による候補のリスト表示です。
>> \fI!\fP は途中まで補完した後の候補のリスト表示です。
>> \fI@\fP は、途中での一致がないときの候補のリスト表示です。
>> \fI%\fP はメニュー補完 (menu completion)です。
>> この変数はプログラム補完機能 (後述の \fBプログラム補完\fP を参照)
>> から呼ばれたシェル関数と外部コマンドにおいてのみ有効です。
>
> ここの completion function も「関数」か「機能」かという疑問が
> あると思います。

これは前述のとおりです。

> プログラミングをよく知らないので、間違っているかもしれませんが、
> この an integer value というのは、TAB, ?, ! などを int 型の値として
> 変数に格納するということではないでしょうか。それは「整数値」というのと
> 同じことですか。

はい。

> to list completions if the word is not unmodified が、どうして
> 「途中での一致がないときの候補のリスト表示です」になるのか、
> わかりません。そもそも原文がわからないのです。if the word is
> not unmodified というのは、要するに「単語が変更を受けている場合」
> ということだと思いますが、具体的にはどういうことなんでしょうか。
> たとえば、ls work/ と打ち込んで TAB を二回押すと、候補リストが
> 表示される。そのとき、font と打ち込んで (つまり、modify する)、
> font 何とかというファイルのリストだけを表示させる。そういうこと
> でしょうか。それとも、一回目の補完 (つまり word が unmodified では
> なくなった) の後に、二回目、三回目の補完をすることでしょうか。
> 原文に間違いがあるという可能性も除外できませんし。

機能からいうと、'!' と '@' はそれぞれ、readline の変数の
show-all-if-ambiguous と show-all-if-unmodified が On になって
いるとき固有の補完の動作を表します。

かなり長くなりますが、以下に実際の動作を示します。

■前準備

bash 上で関数(コマンド)foo と補完関数 mycomplete を定義し、
mycomplete を foo の引数の補完関数に設定します。

$ foo() { true; }
$ mycomplete() { echo -n $COMP_TYPE; COMPREPLY=(aaa aab aac); }
$ complete -F mycomplete foo

mycomplete は、元の文字列に関わらず、候補として "aaa" "aab" "aac"
を返す補完関数です。そのときに、COMP_TYPE の値を画面に表示します。

■デフォルトの補完と COMP_TYPE

まず、show-all-if-ambiguous と show-all-if-unmodified が Off になってい
る、デフォルトの状態です。

コマンドラインに「foo 」と入力して(Enter は打たない)、TAB を打つと、
コマンドラインの表示が

$ foo 9aa

となります。つまり、COMP_TYPE の値である 9(TAB の整数値)が表示された
あと、補完候補の共通先頭部分である "aa" が表示されます。

この直後にまた TAB を押すと、コマンドラインの表示が

$ foo 9aa9

となります。9 を表示したあと、その先に共通補完部分がないため何も表示
されていない状態です。

この直後にまた TAB を押すと、コマンドラインの表示が

$ foo 9aa963
aaa  aab  aac
$ foo aa

となります。63('?' の整数値)を表示したあと、補完候補一覧が表示された
状態です。

■show-all-if-ambiguous が On のときの補完と COMP_TYPE

続いて、show-all-if-ambiguous が On のときの動作です。

readline の設定ファイルである ~/.inputrc に下記の行を記述します。

set show-all-if-ambiguous On

そのあとで bash から C-x C-r と打って ~/.inputrc を読み込み直します。

この状態で、コマンドラインに「foo 」と入力して TAB を打つと、最初から
コマンドラインの表示が

$ foo 33
aaa  aab  aac
$ foo aa

となります。つまり、COMP_TYPE の値である 33('!' の整数値)が表示された
あと、補完候補一覧が表示された状態です。

■show-all-if-unmodified が On のときの補完と COMP_TYPE

続いて、show-all-if-unmodified が On のときの動作です。

~/.inputrc から、前項の show-all-if-ambiguous の設定を削り、かわりに
下記の 2 行を記述します。

set show-all-if-ambiguous Off
set show-all-if-unmodified On

そのあとで bash から C-x C-r と打って ~/.inputrc を読み込み直します。

この状態で、コマンドラインに「foo aa」と入力して TAB を打つと、コマンド
ラインの表示が

$ foo aa64
aaa  aab  aac
$ foo aa

となります。つまり、COMP_TYPE の値である 64('@' の整数値)が表示された
あと、その先に共通補完部分がないため補完候補一覧が表示された状態です。


>> .B COMP_WORDBREAKS
>> .\"O The set of characters that the \fBreadline\fP library treats as word
>> .\"O separators when performing word completion.
>> .\"O If
>> .\"O .SM
>> .\"O .B COMP_WORDBREAKS
>> .\"O is unset, it loses its special properties, even if it is
>> .\"O subsequently reset.
>> 単語補完のときに \fBreadline\fP ライブラリが単語分割の区切り文字として
>> 扱う文字の並びです。
>> .SM
>> .B COMP_WORDBREAKS
>> を unset すると、この変数の特殊な性質はなくなります。後で再び
>> set しても元には戻りません。
>
> 原文の問題かもしれませんが、「この変数の特殊な性格はなくなります」
> というのは、具体的にどういうことなんでしょう。
> special properties という言葉は、変数 DIRSTACK, FUNCNAME, GROUPS,
> HISTCMD, RANDOM, SECONDS でも使われています。

わかりやすいところで、SECONDS の動作は以下のとおりです。

$ echo $SECONDS
41
$ echo $SECONDS
43
$ echo $SECONDS
45
$ unset SECONDS
$ SECONDS=1
$ echo $SECONDS
1
$ echo $SECONDS
1
$ echo $SECONDS
1

一度 unset したあとに値を設定すると、経過秒数を返す性質はなくなります。

>> .B FUNCNAME
>> .\"O An array variable containing the names of all shell functions
>> .\"O currently in the execution call stack.
>
>> 現在実行している呼び出しスタックにある全てのシェル関数名が
>> 入った配列変数です。
>
> 「現在実行している」はどこにかかるのでしょうか。それから、「現在」は
> 「execution call stack に現在存在する」とかかるのだと思います (あれっ、
> 「実行している」にかけても事実上同じことかな)。execution call stack の
> 定訳があるなら、それを使うのが一番よいのですが。
>
> ちなみに、このマニュアル中では、execution call stack は「bash が
> 実行している呼び出しスタック」(BASH_ARGC、BASH_ARGV)、「呼び出し
> スタック」(caller) と訳されています。

「(現在の)呼び出しスタック」で統一しました。

>> .\"O This variable can be used with \fBBASH_LINENO\fP and \fBBASH_SOURCE\fP.
>> .\"O Each element of \fBFUNCNAME\fP has corresponding elements in
>> .\"O \fBBASH_LINENO\fP and \fBBASH_SOURCE\fP to describe the call stack.
>
>> この変数は \fBBASH_LINENO\fP や \fBBASH_SOURCE\fP と組になっています。
>> \fBFUNCNAME\fP の各要素は \fBBASH_LINENO\fP や \fBBASH_SOURCE\fP
>> の各要素に対応し、呼び出しスタックを表します。
>
> can be used with と「組になっている」では微妙に違うのではないでしょうか。
> 確かに、一番言いたいのは、そういうことなんでしょうけれど。

3 つの変数が関連している含みを持たせて、上記のようにしてあります。

> describe というのは、「小学館ランダムハウス英和辞典」には、
> 「対象物の外観・性質・属性などを明かにするためのイメージまたは印象を
> 言葉によって伝達すること」と注が付いていますから、「表す」というより
> 「説明する」に近いと思います。ここでは、「FUNCNAME の各要素は、
> BASH_LINENO や BBASH_SOURCE に対応する要素を持ち、(その三つが一緒に
> なって) call stack についての情報を提供している」ということでは
> ないでしょうか。「例えば、${FUNCNAME[$i]} は」以下が、その情報の
> 具体例になるわけです。

“要素が情報を提供する”というのは違和感があります。

>> .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 進値を代入します。スクリプトや関数の内部でない場合には、
>
> Each は生かした方がよいと思います。assigns ではなく、substitutes
> ですから、「代入」を使うなら、「代入し直す」では。

「Each」のニュアンスは「current」に含まれるとして、「代入」はおかしいで
すね。
「〜10 進値になります」に変更します。

>> .B PIPESTATUS
>> .\"O An array variable (see
>> .\"O .B Arrays
>> .\"O below) containing a list of exit status values from the processes
>> .\"O in the most-recently-executed foreground pipeline (which may
>> .\"O contain only a single command).
>> フォアグラウンドのパイプラインで最後に実行されたプロセスの
>> 終了ステータスのリストを含む配列変数です (後述の
>> .B 配列
>> を参照)。
>> パイプラインには 1 つのコマンドしかなくてもかまいません。
>
> 「フォアグラウンドのパイプラインで最後に実行されたプロセスの」ではなく、
> 「フォアグラウンドで最後に実行したパイプラインの各プロセスの」では
> ありませんか。「各プロセス」と訳したのは、複数であることを表に
> 出さないと、配列であることがピンと来ないからです。

そうですね。修正しました。

>> .B READLINE_POINT
>> .\"O The position of the insertion point in the
>> .\"O .B readline
>> .\"O line buffer, for use with
>> .B readline
>> の編集バッファでのポイントの位置です。
>
> insertion の訳がありませんが、なくても同じことですか。

はい。

>> .B SHLVL
>> .\"O Incremented by one each time an instance of
>> .\"O .B bash
>> .\"O is started.
>> .B bash
>> の実体が起動されるたびに 1 ずつ増えます。
>
> 「実体」というのは、instance の訳として熟しているのですか。
> instance の訳はむずかしいものです。この場合は、bash の中で
> bash を起動し、またそこから bash を起動する、それが何回行われたか
> ということのようですが。

この instance はほぼプロセスと同じ意味かと思います。
bash を起動するとプロセスが起動するのは自明であり、
「実体」という言葉の扱いが難しいようですので、
「の実体」を削りました。

-- 
Masakazu Takahashi (emasaka)




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