Manpages

名 前

bash − GNU Bourne−Again SHell

書 式

bash [options] [file]

著 作 権

Bash is Copyright (C) 1989-2011 by the Free Software Foundation, Inc.

説 明

bash は 、 標 準 入 力 や フ ァ イ ル か ら 読 み 込 ん だ コ マ ン ド を 実 行 す る 、 sh 互 換 の コ マ ン ド 言 語 イ ン タ プ リ タ で す 。 bash に は 、 Korn シ ェ ル や C シ ェ ル (kshcsh) の 便 利 な 機 能 も 採 り 入 れ ら れ て い ま す 。

bash は IEEE POSIX specification (IEEE Standard 1003.1) の Shell and Utilities に 準 拠 す る 実 装 を 目 指 し て い ま す 。 bash は デ フ ォ ル ト で POSIX 準 拠 に 設 定 す る こ と も で き ま す 。

オ プ シ ョ ン

組 み 込 み コ マ ン ド set の 説 明 で 述 べ ら れ て い る 1 文 字 の シ ェ ル オ プ シ ョ ン を 、 起 動 時 に 指 定 で き ま す 。 そ れ に 加 え て 、 bash は 以 下 の オ プ シ ョ ン を 起 動 時 に 解 釈 し ま す 。

−c string

−c オ プ シ ョ ン が 指 定 さ れ る と 、 コ マ ン ド が string か ら 読 み 込 ま れ ま す 。 string の 後 に 引 き 数 が あ れ ば 、 こ れ ら は 位 置 パ ラ メ ー タ (positional parameter: $0 か ら 始 ま る パ ラ メ ー タ ) に 代 入 さ れ ま す 。

−i

オ プ シ ョ ン が 指 定 さ れ る と 、 bash対 話 的 (interactive) に 動 作 し ま す 。

−l

ロ グ イ ン シ ェ ル (後 述 の 起 動 セ ク シ ョ ン を 参 照 ) と し て 起 動 さ れ た か の よ う に bash を 動 作 さ せ ま す 。
−r

−r オ プ シ ョ ン が 指 定 さ れ る と 、 bash制 限 さ れ た 状 態 (restricted) と な り ま す (後 述 の 制 限 付 き の シ ェ ル を 参 照 )。

−s

−s オ プ シ ョ ン が 指 定 さ れ た 場 合 と 、 オ プ シ ョ ン を 全 て 処 理 し た 後 に 引 き 数 が 残 っ て い な か っ た 場 合 に は 、 コ マ ン ド は 標 準 入 力 か ら 読 み 込 ま れ ま す 。 こ の オ プ シ ョ ン を 使 う と 、 対 話 的 シ ェ ル を 起 動 す る と き に 位 置 パ ラ メ ー タ を 設 定 で き ま す 。

−D

二 重 引 用 符 に よ る ク ォ ー ト 文 字 列 (double−quoted strings) に $ が 前 置 さ れ た も の を 、 全 て リ ス ト し て 標 準 出 力 に 出 力 し ま す 。 こ れ ら は 、 カ レ ン ト ロ ケ ー ル が C ま た は POSIX 以 外 の と き に 、 翻 訳 の 対 象 と な る べ き 文 字 列 で す 。 こ の オ プ シ ョ ン を 指 定 す る と 、 自 動 的 に −n オ プ シ ョ ン も 指 定 さ れ た こ と に な り ま す 。 つ ま り コ マ ン ド は 全 く 実 行 さ れ ま せ ん 。

[−+]O [shopt_option]

shopt_option に は 、 組 み 込 み コ マ ン ド shopt (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) に 与 え る の と 同 じ シ ェ ル の オ プ シ ョ ン を 指 定 し ま す 。 shopt_option が 有 効 な オ プ シ ョ ン で あ れ ば 、 −O で オ プ シ ョ ン が 設 定 さ れ ま す 。 +O で 設 定 解 除 に な り ま す 。 shopt_option を 指 定 し な い 場 合 、 shopt で 指 定 で き る オ プ シ ョ ン の 名 前 と 値 が 標 準 出 力 に 表 示 さ れ ま す 。 こ の と き 、 +O で は 、 入 力 と し て 再 利 用 で き る 形 で 出 力 さ れ ま す 。

−−

−− は オ プ シ ョ ン の 終 わ り を 示 し 、 そ れ 以 降 の オ プ シ ョ ン 処 理 を 行 い ま せ ん 。 −− 以 降 の 引 き 数 は 全 て 、 フ ァ イ ル 名 や 引 き 数 と し て 扱 わ れ ま す 。 引 き 数 −− と 同 じ で す 。

bash が 解 釈 す る オ プ シ ョ ン に は 複 数 の 文 字 か ら な る も の も た く さ ん あ り ま す 。 こ の よ う な オ プ シ ョ ン を 認 識 さ せ る た め に は 、 コ マ ン ド ラ イ ン 中 で 1 文 字 の オ プ シ ョ ン よ り も 前 に 置 か な け れ ば な り ま せ ん 。
−−debugger
シ ェ ル の 実 行 を 開 始 す る 前 に 、 デ バ ッ グ モ ー ド を 準 備 し ま す 。 拡 張 デ バ ッ グ モ ー ド を 有 効 に し ま す (後 述 の 組 み 込 み コ マ ン ド shoptextdebug オ プ シ ョ ン を 参 照 )。
−−dump−po−strings

−D と 同 じ で す が 、 出 力 は GNU gettextpo (ポ ー タ ブ ル オ ブ ジ ェ ク ト ) フ ァ イ ル 形 式 で 行 わ れ ま す 。

−−dump−strings

−D と 同 じ で す 。

−−help 使 用 方 法 に つ い て の メ ッ セ ー ジ を 標 準 出 力 に 表 示 し 、 正 常 終 了 し ま す 。

−−init−file file
−−rcfile
file 対 話 的 シ ェ ル と し て 起 動 さ れ た 場 合 、 個 人 用 の 標 準 の 初 期 化 フ ァ イ ル ~/.bashrc の 代 わ り に file か ら コ マ ン ド を 実 行 し ま す (後 述 の 起 動 セ ク シ ョ ン を 参 照 )。
−−login

−l と 同 じ で す 。

−−noediting シ ェ ル が 対 話 的 動 作 の 場 合 、 コ マ ン ド ラ イ ン を 読 み 込 む と き に GNU readline ラ イ ブ ラ リ を 使 用 し ま せ ん 。
−−noprofile
シ ス テ ム 全 体 用 の 起 動 フ ァ イ ル /etc/profile お よ び 個 人 用 の 初 期 化 フ ァ イ ル ~/.bash_profile, ~/.bash_login, ~/.profile の い ず れ も 読 み 込 み ま せ ん 。 デ フ ォ ル ト で は 、 bash は ロ グ イ ン シ ェ ル と し て 起 動 さ れ た と き に こ れ ら の フ ァ イ ル を 読 み 込 み ま す (後 述 の 起 動 セ ク シ ョ ン を 参 照 )。

−−norc シ ェ ル が 対 話 的 動 作 を 行 う 場 合 に 、 個 人 用 初 期 化 フ ァ イ ル

~/.bashrc

の 読 み 込 み ・ 実 行 を 行 い ま せ ん 。 シ ェ ル が sh と し て 起 動 さ れ た 場 合 に は 、 こ の オ プ シ ョ ン は デ フ ォ ル ト で 有 効 に な り ま す 。

−−posix

bash の 動 作 の う ち 、 デ フ ォ ル ト の 振 舞 い が POSIX 標 準 と 異 な る 部 分 を 、 POSIX 標 準 に 準 拠 す る よ う に 変 更 し ま す (posix モ ー ド )。

−−restricted シ ェ ル を 制 限 さ れ た 状 態 に し ま す (後 述 の 制 限 付 き の シ ェ ル セ ク シ ョ ン を 参 照 )。
−−verbose

−v と 同 じ で す 。

−−version 実 行 さ れ た bash の バ ー ジ ョ ン 情 報 を 標 準 出 力 に 表 示 し 、 正 常 終 了 し ま す 。

引 き 数

オ プ シ ョ ン 処 理 の 後 に 引 き 数 が 残 っ て お り 、 か つ −c オ プ シ ョ ン と −s オ プ シ ョ ン の い ず れ も 指 定 さ れ て い な い 場 合 、 最 初 の 引 き 数 は フ ァ イ ル 名 と み な さ れ 、 そ の フ ァ イ ル に シ ェ ル コ マ ン ド が 記 述 さ れ て い る と み な さ れ ま す 。 こ の よ う な 形 で bash が 起 動 さ れ た 場 合 、 $0 に そ の フ ァ イ ル の 名 前 が 設 定 さ れ ま す (残 り の 引 き 数 は 位 置 パ ラ メ ー タ に 設 定 さ れ ま す )。 bash は こ の フ ァ イ ル か ら コ マ ン ド の 読 み 込 み と 実 行 を 行 い 、 そ し て 終 了 し ま す 。 bash の 終 了 ス テ ー タ ス は 、 こ の ス ク リ プ ト 中 で 実 行 さ れ た 最 後 の コ マ ン ド の 終 了 ス テ ー タ ス に な り ま す 。 コ マ ン ド が 全 く 実 行 さ れ な け れ ば 、 終 了 ス テ ー タ ス は 0 で す 。 フ ァ イ ル は 最 初 に カ レ ン ト デ ィ レ ク ト リ か ら 探 し 、 見 つ け ら れ な か っ た 場 合 に は 、 PATH の 中 の デ ィ レ ク ト リ か ら ス ク リ プ ト を 探 し ま す 。

起 動

ロ グ イ ン シ ェ ル (login shell)と は 、 0 番 目 の 引 き 数 の 最 初 の 文 字 が で あ る シ ェ ル 、 ま た は −−login オ プ シ ョ ン 付 き で 起 動 さ れ た シ ェ ル の こ と で す 。 対 話 的 な シ ェ ル と は 、 オ プ シ ョ ン で な い 引 き 数 が な く 、 標 準 入 力 と 標 準 エ ラ ー 出 力 が い ず れ も 端 末 に 接 続 さ れ て い て (こ れ は isatty(3) で 調 べ ら れ ま す )、 −c オ プ シ ョ ン が 指 定 さ れ て い な い 状 態 で 起 動 さ れ た シ ェ ル 、 ま た は −i オ プ シ ョ ン 付 き で 起 動 さ れ た シ ェ ル の こ と で す 。 bash が 対 話 的 に 動 作 し て い る 場 合 に は 、 PS1 が 設 定 さ れ 、 $−i が 含 ま れ ま す 。 こ れ を 利 用 す る と 、 対 話 的 動 作 の 状 態 で あ る か ど う か を 、 シ ェ ル ス ク リ プ ト や 起 動 フ ァ イ ル の 内 部 で 調 べ ら れ ま す 。 以 下 の 段 落 で は 、 bash が ど の よ う に 起 動 フ ァ イ ル を 実 行 す る か を 説 明 し ま す 。 以 下 の フ ァ イ ル の い ず れ か が 、 「 存 在 し て い る が 読 み 込 み で き な い 」 場 合 は 、 bash は エ ラ ー を 報 告 し ま す 。 フ ァ イ ル 名 に 含 ま れ る チ ル ダ は 、 後 述 の 展 開 セ ク シ ョ ン に お け る チ ル ダ 展 開 の 項 目 で 述 べ る よ う に 展 開 さ れ ま す 。

bash が 対 話 的 な ロ グ イ ン シ ェ ル と し て 起 動 さ れ る か 、 −−login オ プ シ ョ ン 付 き の 非 対 話 的 シ ェ ル と し て 起 動 さ れ る と 、 /etc/profile フ ァ イ ル が 存 在 す れ ば 、 bash は ま ず こ こ か ら コ マ ン ド を 読 み 込 ん で 実 行 し ま す 。 こ の フ ァ イ ル を 読 ん だ 後 、 bash~/.bash_profile, ~/.bash_login, ~/.profile を こ の 順 番 で 探 し ま す 。 bash は 、 こ の 中 で 最 初 に 見 つ か り 、 か つ 読 み 込 み が 可 能 で あ る フ ァ イ ル か ら コ マ ン ド を 読 み 込 ん で 実 行 し ま す 。 −−noprofile オ プ シ ョ ン を 使 っ て シ ェ ル を 起 動 す れ ば 、 こ の 動 作 を 行 わ な い よ う に で き ま す 。 ロ グ イ ン シ ェ ル が 終 了 す る と き に は 、 ~/.bash_logout フ ァ イ ル が あ れ ば 、 bash は こ れ を 読 み 込 ん で 実 行 し ま す 。 ロ グ イ ン シ ェ ル で な い 対 話 的 シ ェ ル と し て 起 動 さ れ る と 、 ~/.bashrc フ ァ イ ル が あ れ ば 、 bash は こ こ か ら コ マ ン ド を 読 み 込 み 、 実 行 し ま す 。 こ の 動 作 は −−norc オ プ シ ョ ン で 行 わ な い よ う に で き ま す 。 −−rcfile file オ プ シ ョ ン を 使 う と 、 コ マ ン ド の 読 み 込 み と 実 行 を ~/.bashrc か ら で な く file か ら 行 わ せ る こ と が で き ま す 。

(例 え ば シ ェ ル ス ク リ プ ト を 実 行 す る た め に ) 非 対 話 的 に 起 動 さ れ る と 、 bash は 環 境 変 数 BASH_ENV を 調 べ 、 こ の 変 数 が 定 義 さ れ て い れ ば そ の 値 を 展 開 し 、 得 ら れ た 値 を フ ァ イ ル 名 と み な し て 、 そ こ か ら コ マ ン ド の 読 み 込 み と 実 行 を 行 い ま す 。 つ ま り bash は 以 下 の コ マ ン ド が 実 行 さ れ た の と 同 じ よ う に 動 作 し ま す :

if [ −n "$BASH_ENV" ]; then . "$BASH_ENV"; fi た だ し 、 フ ァ イ ル 名 を 探 す た め に PATH 環 境 変 数 の 値 が 使 わ れ る こ と は あ り ま せ ん 。

sh と い う 名 前 で bash を 起 動 す る と 、 bash は 古 く か ら あ る sh の 起 動 動 作 を で き る だ け 真 似 し よ う と し ま す 。 ま た POSIX 標 準 に も で き る だ け 従 お う と し ま す 。 対 話 的 な ロ グ イ ン シ ェ ル と し て 起 動 さ れ る と 、 あ る い は −−login オ プ シ ョ ン 付 き の 非 対 話 的 シ ェ ル と し て 起 動 さ れ る と 、 こ の シ ェ ル は ま ず /etc/profile~/.profile の 順 で コ マ ン ド の 読 み 込 み と 実 行 を し よ う と し ま す 。 −−noprofile オ プ シ ョ ン を 使 う と 、 こ の 動 作 を 行 わ な い よ う に で き ま す 。 sh と い う 名 前 の 対 話 的 シ ェ ル と し て 起 動 さ れ る と 、 bash は 環 境 変 数 ENV を 調 べ 、 こ の 変 数 が 定 義 さ れ て い れ ば そ の 値 を 展 開 し 、 展 開 で 得 た 値 を コ マ ン ド の 読 み 込 み と 実 行 を 行 う た め の フ ァ イ ル 名 と し て 使 い ま す 。 sh と い う 名 前 で 起 動 さ れ た シ ェ ル は 、 ほ か の 起 動 フ ァ イ ル か ら コ マ ン ド の 読 み 込 み と 起 動 を 行 う こ と は な い の で 、 −−rcfile オ プ シ ョ ン は 全 く 効 果 を 持 ち ま せ ん 。 sh と い う 名 前 の 非 対 話 的 シ ェ ル と し て 起 動 さ れ る と 、 こ の シ ェ ル は ほ か の 起 動 フ ァ イ ル を 何 も 読 み 込 み ま せ ん 。 sh と し て 起 動 さ れ た 場 合 、 bash は 起 動 フ ァ イ ル の 読 み 込 み を 行 っ た 後 に POSIX モ ー ド に 入 り ま す 。

−−posix コ マ ン ド ラ イ ン オ プ シ ョ ン 等 に よ り bashPOSIX モ ー ド で 起 動 さ れ る と 、 bash は 起 動 フ ァ イ ル に 関 し て POSIX 標 準 に 従 い ま す 。 こ の モ ー ド で は 、 対 話 的 シ ェ ル は ENV 環 境 変 数 を 展 開 し 、 展 開 し て 得 ら れ た 名 前 の フ ァ イ ル か ら コ マ ン ド の 読 み 込 み と 実 行 を 行 い ま す 。 ほ か の 起 動 フ ァ イ ル は 全 く 読 み 込 み ま せ ん 。

bash は 、 リ モ ー ト シ ェ ル デ ー モ ン rshd や セ キ ュ ア シ ェ ル デ ー モ ン sshd に よ っ て 実 行 さ れ た 場 合 な ど 、 標 準 入 力 が ネ ッ ト ワ ー ク 接 続 に 接 続 さ れ た 状 態 で 実 行 さ れ た か ど う か を 調 べ ま す 。 こ の 方 法 に よ っ て 実 行 さ れ て い る と bash が 判 断 し た 場 合 、 ~/.bashrc が 存 在 し 、 か つ 読 み 込 み 可 能 で あ れ ば 、 bash は コ マ ン ド を こ の フ ァ イ ル か ら 読 み 込 ん で 実 行 し ま す 。 sh と し て 呼 び 出 さ れ た 場 合 に は 、 こ の 動 作 は 行 い ま せ ん 。 −−norc オ プ シ ョ ン を 使 え ば こ の 動 作 を 禁 止 で き ま す し 、 −−rcfile オ プ シ ョ ン を 使 え ば ほ か の フ ァ イ ル を 読 ま せ る よ う に も で き ま す 。 し か し 一 般 的 に は rshd は こ れ ら の オ プ シ ョ ン を 付 け て シ ェ ル を 起 動 し ま せ ん し 、 指 定 も で き な い よ う に な っ て い ま す 。 シ ェ ル が 実 ユ ー ザ (グ ル ー プ ) ID と 異 な る 実 効 ユ ー ザ (グ ル ー プ ) ID で 起 動 さ れ 、 か つ −p オ プ シ ョ ン が 与 え ら れ て い な い 場 合 は 、 起 動 フ ァ イ ル は 全 く 読 み 込 ま れ ず 、 シ ェ ル 関 数 は 環 境 か ら 継 承 さ れ ず 、 SHELLOPTS, BASHOPTS, CDPATH, GLOBIGNORE が 環 境 変 数 に 含 ま れ て い て も 無 視 さ れ 、 実 効 ユ ー ザ ID に は 実 ユ ー ザ ID が 設 定 さ れ ま す 。 −p オ プ シ ョ ン が 起 動 時 に 与 え ら れ た 場 合 、 起 動 時 の 動 作 は 同 じ で す が 、 実 効 ユ ー ザ ID は 再 設 定 さ れ ま せ ん 。

定 義

こ の ド キ ュ メ ン ト の 残 り の 部 分 で は 、 以 下 の 定 義 を 使 用 し ま す 。 ブ ラ ン ク

(blank) 空 白 文 字 ま た は タ ブ 文 字 単 語
(word)
シ ェ ル が 1 単 位 と み な す 文 字 の 並 び 。 ト ー ク ン (token) と も 言 わ れ ま す 。 名 前
(name)
英 数 字 と ア ン ダ ー ス コ ア 文 字 だ け か ら 構 成 さ れ 、 か つ 最 初 の 文 字 が 英 字 か ア ン ダ ー ス コ ア 文 字 で あ る 単 語識 別 子 (identifier) と も 言 わ れ ま す 。 メ タ 文 字
(metacharacter)
ク ォ ー ト さ れ て い な い 場 合 に 、 単 語 区 切 り と な る 文 字 。 以 下 の 文 字 の う ち の い ず れ か で す :

| & ; ( ) < > space tab 制 御 演 算 子

(control operator) 制 御 機 能 を 持 つ ト ー ク ン 。 以 下 の シ ン ボ ル の う ち の い ず れ か で す :

|| & && ; ;; ( ) | |& <newline>

予 約 語

予 約 語 (reserved word) と は シ ェ ル に と っ て 特 別 な 意 味 を 持 つ 単 語 で す 。 以 下 の 単 語 が ク ォ ー ト さ れ て お ら ず 、 か つ 単 純 な コ マ ン ド (simple command) の 先 頭 の 単 語 (後 述 の シ ェ ル の 文 法 を 参 照 ) で あ る か 、 case コ マ ン ド や for コ マ ン ド の 3 番 目 の 単 語 で あ る 場 合 に は 、 予 約 語 と し て 認 識 さ れ ま す :

! case do done elif else esac fi for function if in select then until while { } time [[ ]]

シ ェ ル の 文 法

単 純 な コ マ ン ド (Simple Commands) 単 純 な コ マ ン ド (simple command) と は 、 変 数 の 代 入 を 並 べ た も の (こ れ は 省 略 可 能 で す ) の 後 に 、 ブ ラ ン ク 区 切 り の 単 語 と リ ダ イ レ ク シ ョ ン を 記 述 し 、 最 後 に 制 御 演 算 子 を 置 い た も の で す 。 最 初 の 単 語 は 実 行 す る コ マ ン ド を 指 定 し ま す 。 こ れ は 0 番 目 の 引 き 数 と な り ま す 。 残 り の 単 語 は 起 動 さ れ る コ マ ン ド に 引 き 数 と し て 渡 さ れ ま す 。 単 純 な コ マ ン ド の 返 り 値 は コ マ ン ド の 終 了 コ ー ド で す が 、 シ グ ナ ル n を 受 け て コ マ ン ド が 終 了 し た 場 合 に は 128+n と な り ま す 。 パ イ プ ラ イ ン (Pipeline) パ イ プ ラ イ ン (pipeline)は 、 制 御 演 算 子 | ま た は |& で 区 切 っ た 1 つ 以 上 の コ マ ン ド の 並 び で す 。 パ イ プ ラ イ ン の フ ォ ー マ ッ ト を 以 下 に 示 し ま す :

[time [−p]] [ ! ] command [ [||&] command2 ... ]

command の 標 準 出 力 は command2 の 標 準 入 力 に パ イ プ で 接 続 さ れ ま す 。 こ の 接 続 は 、 コ マ ン ド で 指 定 し た ど の リ ダ イ レ ク シ ョ ン よ り も 先 に 実 行 さ れ ま す (後 述 の リ ダ イ レ ク ト を 参 照 )。 |& を 使 う と 、 command の 標 準 エ ラ ー 出 力 も パ イ プ を 通 し て command2 の 標 準 入 力 に 接 続 さ れ ま す 。 こ れ は 2>&1 | の 短 縮 形 で す 。 こ の 標 準 エ ラ ー 出 力 の 暗 黙 の リ ダ イ レ ク シ ョ ン は 、 コ マ ン ド に 指 定 さ れ た 全 て の リ ダ イ レ ク シ ョ ン の 後 に 実 行 さ れ ま す 。

pipefail オ プ シ ョ ン が 有 効 に な っ て い る 場 合 を 除 き 、 パ イ プ ラ イ ン の 返 却 ス テ ー タ ス は 最 後 の コ マ ン ド の 終 了 ス テ ー タ ス に な り ま す 。 pipefail が 有 効 に な っ て い る 場 合 に は 、 0 以 外 の ス テ ー タ ス を 返 し た 最 後 の (一 番 右 の ) コ マ ン ド の 値 が パ イ プ ラ イ ン の 返 却 ス テ ー タ ス に な り 、 全 て の コ マ ン ド が 正 常 終 了 し た 場 合 に の み 0 に な り ま す 。 パ イ プ ラ イ ン の 前 に 、 予 約 語 で あ る ! が あ る 場 合 、 そ の パ イ プ ラ イ ン の 終 了 ス テ ー タ ス は 上 記 の 終 了 ス テ ー タ ス を 論 理 否 定 し た も の に な り ま す 。 値 を 返 す 前 に 、 シ ェ ル は パ イ プ ラ イ ン 中 の 全 て の コ マ ン ド が 終 了 す る の を 待 ち ま す 。 パ イ プ ラ イ ン の 前 に 予 約 語 time が あ る 場 合 、 コ マ ン ド の 実 行 に か か っ た 経 過 時 間 ・ ユ ー ザ 時 間 ・ シ ス テ ム 時 間 が パ イ プ ラ イ ン の 終 了 時 に 報 告 さ れ ま す 。 −p オ プ シ ョ ン を 指 定 す る と 、 出 力 フ ォ ー マ ッ ト が POSIX 仕 様 に 変 わ り ま す 。 シ ェ ル が posix モ ー ド の と き に は 、 後 に 続 く の が ’−’ で 始 ま る ト ー ク ン で あ れ ば time を 予 約 語 と 認 識 し ま せ ん 。 変 数 TIMEFORMAT に は 、 経 過 時 間 情 報 の 表 示 の 仕 方 を 指 定 す る フ ォ ー マ ッ ト 文 字 列 を 設 定 で き ま す (後 述 の シ ェ ル 変 数 の 項 の TIMEFORMAT に 関 す る 説 明 を 参 照 )。 シ ェ ル が posix モ ー ド の と き に は 、 time の 直 後 が 改 行 で も か ま い ま せ ん 。 こ の 場 合 、 シ ェ ル と 子 プ ロ セ ス が そ れ ま で に 消 費 し た ユ ー ザ 時 間 と シ ス テ ム 時 間 を 出 力 し ま す 。 こ の と き に も 、 経 過 時 間 情 報 の フ ォ ー マ ッ ト を 変 数 TIMEFORMAT で 指 定 で き ま す 。 パ イ プ ラ イ ン 中 の 各 コ マ ン ド は 、 そ れ ぞ れ 別 の プ ロ セ ス と し て (つ ま り サ ブ シ ェ ル 内 で ) 実 行 さ れ ま す 。 リ ス ト リ ス ト (list) と は 、 1つ 以 上 の パ イ プ ラ イ ン を 演 算 子 ;, &, &&, || の い ず れ か で 区 切 っ て 並 べ た も の で す 。 パ イ プ ラ イ ン の 最 後 に ;, &, <newline> の い ず れ か を 置 く こ と も で き ま す 。 リ ス ト 演 算 子 の う ち 、 &&|| の 優 先 順 位 は 同 じ で す 。 こ れ ら の 次 に 、 ;& が 同 じ 優 先 順 位 で 続 き ま す 。 リ ス ト 中 で は 、 コ マ ン ド の 区 切 り と し て 、 セ ミ コ ロ ン の 代 わ り に 一 つ 以 上 の 改 行 が 使 わ れ る こ と も あ り ま す 。 コ マ ン ド が 制 御 演 算 子 & で 終 わ っ て い る 場 合 、 シ ェ ル は コ マ ン ド を サ ブ シ ェ ル 内 で バ ッ ク グ ラ ウ ン ド (background) で 実 行 し ま す 。 シ ェ ル は コ マ ン ド が 終 了 す る の を 待 た ず に 、 返 却 ス テ ー タ ス 0 を 返 し ま す 。 コ マ ン ド を ; で 区 切 っ た 場 合 に は 、 こ れ ら は 順 番 に 実 行 さ れ ま す 。 シ ェ ル は そ れ ぞ れ の コ マ ン ド が 終 了 す る の を 順 番 に 待 ち ま す 。 返 却 ス テ ー タ ス は 、 最 後 に 実 行 し た コ マ ン ド の 終 了 ス テ ー タ ス に な り ま す 。

AND リ ス ト と OR リ ス ト は 、 そ れ ぞ れ 制 御 演 算 子 &&|| で 区 切 ら れ た パ イ プ ラ イ ン の 並 び で す 。 AND リ ス ト と OR リ ス ト は 左 結 合 で 実 行 さ れ ま す 。 AND リ ス ト は

command1 && command2 と い う 形 式 で あ り 、 command1 が 終 了 ス テ ー タ ス 0 を 返 し た 場 合 に 限 り command2 が 実 行 さ れ ま す 。

OR リ ス ト は

command1 || command2 と い う 形 式 で あ り 、 command1 が 0 以 外 の 終 了 ス テ ー タ ス を 返 し た 場 合 に 限 り command2 が 実 行 さ れ ま す 。 AND リ ス ト と OR リ ス ト の 返 却 ス テ ー タ ス は 、 リ ス ト 中 で 最 後 に 実 行 さ れ た コ マ ン ド の 終 了 ス テ ー タ ス で す 。 複 合 コ マ ン ド (Compound Commands) 複 合 コ マ ン ド (compound command) を 以 下 に 示 し ま す :

(list)

list は サ ブ シ ェ ル 内 で 実 行 さ れ ま す (後 述 の コ マ ン ド 実 行 環 境 の 項 を 参 照 )。 シ ェ ル の 環 境 に 影 響 を 与 え る よ う な 変 数 の 代 入 や 組 み 込 み コ マ ン ド は 、 コ マ ン ド の 終 了 後 に 影 響 を 残 し ま せ ん 。 返 却 ス テ ー タ ス は list の 終 了 ス テ ー タ ス で す 。

{ list; }

list が 単 に 現 在 の シ ェ ル 環 境 で 実 行 さ れ ま す 。 list の 最 後 は 改 行 文 字 か セ ミ コ ロ ン で な け れ ば な り ま せ ん 。 こ れ は グ ル ー プ コ マ ン ド (group command) と 呼 ば れ ま す 。 返 却 ス テ ー タ ス は list の 終 了 ス テ ー タ ス で す 。 メ タ 文 字 で あ る () と 違 い 、 {}予 約 語 で あ り 、 予 約 語 と し て 認 識 さ れ る 場 所 に 現 わ れ る 必 要 が あ る こ と に 注 意 し て く だ さ い 。 こ れ ら は 単 語 分 割 の 対 象 と な ら な い た め 、 リ ス ト と の 間 が 空 白 ま た は シ ェ ル の メ タ 文 字 で 分 か れ て い る 必 要 が あ り ま す 。

((expression))

expression が 後 述 の 算 術 式 評 価 で 説 明 さ れ る 規 則 に 従 っ て 評 価 さ れ ま す 。 式 の 値 が 0 で な い 場 合 、 返 却 ス テ ー タ ス は 0 に な り ま す 。 そ う で な い 場 合 、 返 さ れ る ス テ ー タ ス は 1 に な り ま す 。 こ れ は let "expression" と 全 く 同 じ も の で す 。

[[ expression ]] 条 件 式 expression の 評 価 値 に 従 っ て 0 ま た は 1 を 返 し ま す 。 式 は 後 述 の 条 件 式 で 説 明 す る 、 プ ラ イ マ リ に よ っ て 構 成 さ れ ま す 。 単 語 分 割 と パ ス 名 展 開 は [[]] の 間 の 単 語 に 対 し て は 行 わ れ ま せ ん 。 チ ル ダ 展 開 、 パ ラ メ ー タ と 変 数 の 展 開 、 算 術 式 展 開 、 コ マ ン ド 置 換 、 プ ロ セ ス 置 換 、 ク ォ ー ト 除 去 は 実 行 さ れ ま す 。 −f な ど の 条 件 演 算 子 が プ ラ イ マ リ と し て 認 識 さ れ る た め に は 、 ク ォ ー ト さ れ て い て は い け ま せ ん 。

[[ に お い て は 、 < 演 算 子 と > 演 算 子 は 、 現 在 の ロ ケ ー ル に お け る 辞 書 順 で 比 較 し ま す 。

== 演 算 子 と != 演 算 子 が 使 わ れ た と き 、 演 算 子 の 右 の 文 字 列 は パ タ ー ン と 解 釈 さ れ 、 後 述 の パ タ ー ン マ ッ チ ン グ で 説 明 す る 規 則 に 従 っ て マ ッ チ ン グ が 行 わ れ ま す 。 シ ェ ル オ プ シ ョ ン nocasematch が 有 効 で あ れ ば 、 ア ル フ ァ ベ ッ ト の 大 文 字 と 小 文 字 を 考 慮 せ ず に マ ッ チ ン グ が 行 わ れ ま す 。 返 り 値 は 、 == 演 算 子 で は 文 字 列 が マ ッ チ し た と き に 、 != 演 算 子 で は 文 字 列 が マ ッ チ し な か っ た と き に 0 と な り 、 そ う で な い 場 合 に 1 と な り ま す 。 パ タ ー ン 中 の ど の 部 分 で も 、 ク ォ ー ト す る こ と で 、 た だ の 文 字 列 と し て マ ッ チ ン グ さ せ る こ と が で き ま す 。 そ の ほ か 、 二 項 演 算 子 =~ も あ り ま す 。 優 先 順 位 は ==!= と 同 じ で す 。 こ れ を 使 う と 、 右 辺 の 文 字 列 は 拡 張 正 規 表 現 と み な さ れ 、 そ れ に 従 っ て (regex(3) に あ る よ う に ) マ ッ チ ン グ が 行 わ れ ま す 。 文 字 列 が パ タ ー ン に マ ッ チ す れ ば 返 り 値 は 0 で あ り 、 マ ッ チ し な け れ ば 返 り 値 は 1 に な り ま す 。 正 規 表 現 が 文 法 的 に 誤 っ て い れ ば 、 条 件 式 の 返 り 値 は 2 に な り ま す 。 シ ェ ル オ プ シ ョ ン nocasematch が 有 効 で あ れ ば 、 ア ル フ ァ ベ ッ ト の 大 文 字 と 小 文 字 を 考 慮 せ ず に マ ッ チ ン グ が 行 わ れ ま す 。 パ タ ー ン 中 の ど の 部 分 で も 、 ク ォ ー ト す る こ と で 、 た だ の 文 字 列 と し て マ ッ チ ン グ さ せ る こ と が で き ま す 。 正 規 表 現 中 の 括 弧 に よ る 部 分 式 に マ ッ チ し た 部 分 文 字 列 は 、 配 列 変 数 BASH_REMATCH に 保 存 さ れ ま す 。 BASH_REMATCH の イ ン デ ッ ク ス 0 の 要 素 は 、 文 字 列 の う ち 正 規 表 現 全 体 に マ ッ チ し た 部 分 に な り ま す 。 BASH_REMATCH の イ ン デ ッ ク ス n の 要 素 は 、 文 字 列 の う ち 、 正 規 表 現 中 の n 番 目 の 括 弧 に よ る 部 分 式 に マ ッ チ し た 部 分 に な り ま す 。 式 は 以 下 の 演 算 子 を 使 っ て 繋 げ ら れ ま す 。 以 下 に 演 算 子 を 優 先 度 の 順 に 示 し ま す :
(
expression )

expression の 値 を 返 し ま す 。 こ れ を 用 い て 、 演 算 子 の 通 常 の 優 先 度 を 変 更 で き ま す 。

! expression

expression が 偽 な ら ば 真 に な り ま す 。

expression1 && expression2

expression1expression2 が 両 方 と も 真 で あ れ ば 真 に な り ま す 。

expression1 || expression2

expression1expression2 の ど ち ら か が 真 で あ れ ば 真 と な り ま す 。

expression1 の 値 だ け で 条 件 式 全 体 の 返 り 値 が 決 定 で き れ ば 、 && 演 算 子 と || 演 算 子 は expression2 を 実 行 し ま せ ん 。

for name [ [ in [ word ... ] ] ; ] do list ; done

in に 続 く 単 語 の リ ス ト が 展 開 さ れ 、 要 素 の リ ス ト が 生 成 さ れ ま す 。 変 数 name に は 、 こ の リ ス ト の 各 要 素 が 順 番 に セ ッ ト さ れ 、 そ の た び に list が 実 行 さ れ ま す 。 「 in word」 が 省 略 さ れ た 場 合 、 for コ マ ン ド は 、 設 定 さ れ て い る 位 置 パ ラ メ ー タ そ れ ぞ れ に 対 し て list を 一 度 ず つ 実 行 し ま す (後 述 の パ ラ メ ー タ を 参 照 )。 返 却 ス テ ー タ ス は 実 行 さ れ た 最 後 の コ マ ン ド の 終 了 ス テ ー タ ス に な り ま す 。 in に 続 く 要 素 を 展 開 し た 結 果 が 空 と な っ た 場 合 、 コ マ ン ド は 全 く 実 行 さ れ ず 、 返 却 ス テ ー タ ス 0 が 返 さ れ ま す 。

for (( expr1 ; expr2 ; expr3 )) ; do list ; done 最 初 に 、 算 術 式 expr1 が 、 後 述 の 算 術 式 評 価 で 説 明 さ れ る 規 則 に 従 っ て 評 価 さ れ ま す 。 次 に 、 算 術 式 expr2 が ゼ ロ に な る ま で 繰 り 返 し 評 価 さ れ ま す 。 算 術 式 expr2 の 評 価 結 果 が ゼ ロ で な け れ ば 、 そ の た び ご と に listが 実 行 さ れ 、 算 術 式 expr3 が 評 価 さ れ ま す 。 ど の 算 術 式 も 、 省 略 さ れ た 場 合 は 、 評 価 結 果 が 1 で あ っ た も の と し て 振 舞 い ま す 。 返 却 ス テ ー タ ス は list 中 で 実 行 さ れ た 最 後 の コ マ ン ド の 終 了 ス テ ー タ ス と な り ま す が 、 算 術 式 の い ず れ か が 不 正 で あ る 場 合 に は 偽 と な り ま す 。
select
name [ in word ] ; do list ; done

in に 続 く 単 語 の リ ス ト が 展 開 さ れ 、 要 素 の リ ス ト が 生 成 さ れ ま す 。 展 開 さ れ た 単 語 の 集 合 が 番 号 付 き で 標 準 エ ラ ー 出 力 に 出 力 さ れ ま す 。 「 in word」 が 省 略 さ れ た 場 合 、 位 置 パ ラ メ ー タ が 出 力 さ れ ま す (後 述 の パ ラ メ ー タ を 参 照 )。 続 い て PS3 プ ロ ン プ ト が 表 示 さ れ 、 標 準 入 力 か ら 1 行 の 読 み 込 み が 行 わ れ ま す 。 表 示 さ れ た 単 語 の い ず れ か に 対 応 す る 数 字 が こ の 行 に 含 ま れ て い れ ば 、 name の 値 と し て そ の 単 語 が 設 定 さ れ ま す 。 行 が 空 で あ れ ば 、 単 語 と プ ロ ン プ ト が 再 び 表 示 さ れ ま す 。 EOF を 読 み 込 む と コ マ ン ド が 終 了 し ま す 。 こ れ 以 外 の 値 の 場 合 に は 、 name に は 空 文 字 列 が 設 定 さ れ ま す 。 読 み 込 ん だ 行 は 変 数 REPLY に 格 納 さ れ ま す 。 break コ マ ン ド が 実 行 さ れ る ま で 、 選 択 を 行 う た び に list が 実 行 さ れ ま す 。 select の 終 了 ス テ ー タ ス は 、 list 中 で 最 後 に 実 行 し た コ マ ン ド の 終 了 ス テ ー タ ス で す が 、 コ マ ン ド が 全 く 実 行 さ れ な か っ た 場 合 に は 0 と な り ま す 。

case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac

case コ マ ン ド は 最 初 に word を 展 開 し 、 そ れ ぞ れ の pattern に 対 し て 順 に マ ッ チ ン グ を 試 み ま す 。 マ ッ チ ン グ の 際 に は パ ス 名 展 開 (後 述 の パ ス 名 展 開 を 参 照 ) と 同 じ 規 則 が 用 い ら れ ま す 。 word に は 、 チ ル ダ 展 開 、 パ ラ メ ー タ と 変 数 の 展 開 、 算 術 式 展 開 、 コ マ ン ド 置 換 、 プ ロ セ ス 置 換 、 ク ォ ー ト 除 去 が 実 行 さ れ ま す 。 そ れ ぞ れ の pattern は 、 チ ル ダ 展 開 、 パ ラ メ ー タ と 変 数 の 展 開 、 算 術 式 展 開 、 コ マ ン ド 置 換 、 プ ロ セ ス 置 換 、 ク ォ ー ト 除 去 の う え で 比 較 さ れ ま す 。 シ ェ ル オ プ シ ョ ン nocasematch が 有 効 で あ れ ば 、 ア ル フ ァ ベ ッ ト の 大 文 字 と 小 文 字 を 考 慮 せ ず に マ ッ チ ン グ が 行 わ れ ま す 。 マ ッ チ す る も の が 見 つ か る と 、 こ れ に 対 応 す る list が 実 行 さ れ ま す 。 ;; 演 算 子 を 使 う と 、 最 初 に マ ッ チ し た パ タ ー ン 以 降 の マ ッ チ ン グ は 試 み ら れ ま せ ん 。 ;; の 代 わ り に ;& を 使 う と 、 そ の 次 の パ タ ー ン に 対 応 す る list の 実 行 に 続 き ま す 。 ;; の 代 わ り に ;;& を 使 う と 、 次 の パ タ ー ン が あ れ ば そ の マ ッ チ ン グ を 試 み 、 マ ッ チ す れ ば 対 応 す る list を 実 行 し ま す 。 マ ッ チ す る パ タ ー ン が 無 け れ ば 、 終 了 ス テ ー タ ス は 0 に な り ま す 。 マ ッ チ す る も の が あ っ た ら 、 終 了 ス テ ー タ ス は list 中 で 最 後 に 実 行 さ れ た コ マ ン ド の 終 了 ス テ ー タ ス に な り ま す 。

if list; then list; [ elif list; then list; ] ... [ else list; ] fi 最 初 に if list が 実 行 さ れ ま す 。 list の 終 了 ス テ ー タ ス が 0 な ら ば 、 then list が 実 行 さ れ ま す 。 そ う で な け れ ば elif list が そ れ ぞ れ 順 番 に 実 行 さ れ 、 list の 終 了 ス テ ー タ ス が 0 な ら ば 、 対 応 す る then list が 実 行 さ れ 、 コ マ ン ド が 終 了 し ま す 。 そ う で な け れ ば 、 else list が (も し 存 在 す れ ば ) 実 行 さ れ ま す 。 終 了 ス テ ー タ ス は 最 後 に 実 行 さ れ た コ マ ン ド の 終 了 ス テ ー タ ス と な り ま す 。 ど の 条 件 も 真 と 評 価 さ れ ず 、 コ マ ン ド が 全 く 実 行 さ れ な か っ た 場 合 、 終 了 ス テ ー タ ス は 0 と な り ま す 。
while
list−1; do list−2; done
until
list−1; do list−2; done

while コ マ ン ド は 、 list−1 中 の 最 後 の コ マ ン ド が 終 了 ス テ ー タ ス 0 を 返 す 間 、 繰 り 返 し て list−2 を 実 行 し ま す 。 until コ マ ン ド は while コ マ ン ド と ほ ぼ 同 じ で す が 、 評 価 の 条 件 が 逆 と な る 点 が 異 な り ま す 。 list−2list−1 中 の 最 後 の コ マ ン ド が 0 以 外 の 終 了 ス テ ー タ ス を 返 す 限 り ず っ と 実 行 さ れ ま す 。 while コ マ ン ド と until コ マ ン ド の 終 了 ス テ ー タ ス は 、 do list−2 で 実 行 さ れ た 最 後 の コ マ ン ド の 終 了 ス テ ー タ ス に な り ま す が 、 コ マ ン ド が 全 く 実 行 さ れ な か っ た 場 合 に は 0 に な り ま す 。 コ プ ロ セ ス (Coprocesses) コ プ ロ セ ス (coprocess) と は 、 予 約 語 coproc で 始 ま る シ ェ ル の コ マ ン ド の こ と で す 。 コ プ ロ セ ス は 、 コ マ ン ド が 制 御 演 算 子 & で 終 わ っ て い る と き の よ う に 、 サ ブ シ ェ ル で 非 同 期 に 実 行 さ れ ま す 。 実 行 し た シ ェ ル と コ プ ロ セ ス の 間 に は 、 双 方 向 の パ イ プ が 設 け ら れ ま す コ プ ロ セ ス の フ ォ ー マ ッ ト を 以 下 に 示 し ま す :

coproc [NAME] command [redirections] こ れ に よ り NAME と い う 名 前 の コ プ ロ セ ス が 作 ら れ ま す 。 NAME が 指 定 さ れ な い 場 合 、 デ フ ォ ル ト の 名 前 は COPROC と な り ま す 。 command単 純 な コ マ ン ド (前 述 ) の と き に は 、 NAME は 指 定 で き ま せ ん 。 指 定 す る と 、 単 純 な コ マ ン ド の 最 初 の 単 語 と し て 扱 わ れ ま す 。 コ プ ロ セ ス が 実 行 さ れ る と 、 実 行 し た シ ェ ル の コ ン テ キ ス ト に NAME と い う 名 前 の 配 列 変 数 (後 述 の 配 列 を 参 照 ) が 作 ら れ ま す 。 command の 標 準 出 力 は 、 実 行 し て い る シ ェ ル の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の 一 つ と パ イ プ に よ っ て 接 続 さ れ ま す 。 こ の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー は NAME[0] に 代 入 さ れ ま す 。 command の 標 準 入 力 は 、 実 行 し て い る シ ェ ル の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の 一 つ と パ イ プ に よ っ て 接 続 さ れ ま す 。 こ の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー は NAME[1] に 代 入 さ れ ま す 。 こ の パ イ プ は 、 コ マ ン ド で 指 定 さ れ た ほ か の リ ダ イ レ ク ト よ り 先 に 設 け ら れ ま す (後 述 の リ ダ イ レ ク ト を 参 照 )。 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー は 、 標 準 的 な 単 語 展 開 に よ り 、 シ ェ ル の コ マ ン ド の 引 き 数 や リ ダ イ レ ク シ ョ ン に 指 定 で き ま す 。 コ プ ロ セ ス の 実 行 で 生 成 さ れ た シ ェ ル の プ ロ セ ス ID は 、 変 数 NAME_PID の 値 に な り ま す 。 コ プ ロ セ ス の 終 了 を 待 つ に は 、 組 み 込 み コ マ ン ド wait を 使 い ま す 。 コ プ ロ セ ス の 返 却 ス テ ー タ ス は 、 command の 終 了 ス テ ー タ ス で す 。 関 数 定 義 シ ェ ル 関 数 と は 、 単 純 な コ マ ン ド と し て 呼 び 出 さ れ て 、 新 し い 位 置 パ ラ メ ー タ ー の 一 式 を 持 つ 複 合 コ マ ン ド を 実 行 す る も の の こ と で す 。 シ ェ ル 関 数 は 以 下 の 形 式 で 宣 言 し ま す :

name () compound−command [redirection]
function
name [()] compound−command [redirection] こ れ に よ っ て name と い う 名 前 の 関 数 が 定 義 さ れ ま す 。 予 約 語 function は 省 略 可 能 で す 。 予 約 語 function が 与 え ら れ た 場 合 、 括 弧 は 省 略 可 能 で す 。 関 数 の 実 体 は 複 合 コ マ ン ド compound−command で す (前 述 の 複 合 コ マ ン ド を 参 照 )。 多 く の 場 合 、 { と } に 挟 ま れ た コ マ ン ド の リ ス ト が 用 い ら れ ま す が 、 前 述 の 複 合 コ マ ン ド で 挙 げ た ど の コ マ ン ド を 用 い て も か ま い ま せ ん 。 単 純 な コ マ ン ド の 名 前 と し て name を 指 定 す る と い つ で も compound−command が 実 行 さ れ ま す 。 関 数 の 定 義 で 指 定 さ れ た リ ダ イ レ ク シ ョ ン (後 述 の リ ダ イ レ ク ト を 参 照 ) は 、 関 数 が 実 行 さ れ る と き に 処 理 さ れ ま す 。 関 数 定 義 の 終 了 ス テ ー タ ス は 、 文 法 エ ラ ー が 起 き た 場 合 や 、 読 み 込 み 専 用 の 関 数 が 同 じ 名 前 で 定 義 さ れ て い た 場 合 を 除 き 、 0 で す 。 関 数 を 実 行 し た と き の 終 了 ス テ ー タ ス は 、 実 体 の 中 で 最 後 に 実 行 さ れ た コ マ ン ド の 終 了 ス テ ー タ ス に な り ま す (後 述 の 関 数 を 参 照 )。

コ メ ン ト (COMMENTS)

シ ェ ル が 対 話 的 で な い 場 合 、 ま た は 対 話 的 な シ ェ ル に お い て 組 み 込 み コ マ ン ド の shopt に 対 す る interactive_comments オ プ シ ョ ン が 有 効 と な っ て い る (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 す る こ と ) 場 合 に は 、 # で 始 ま る 単 語 が あ る と 、 そ の 単 語 と そ の 行 の 残 り の 文 字 が 全 て 無 視 さ れ ま す 。 対 話 シ ェ ル で は 、 interactive_comments オ プ シ ョ ン が 有 効 で な け れ ば コ メ ン ト は 使 え ま せ ん 。 対 話 シ ェ ル で は 、 interactive_comments オ プ シ ョ ン は デ フ ォ ル ト で 有 効 に な っ て い ま す 。

ク ォ ー ト

ク ォ ー ト (quoting) を 使 う と 、 特 定 の 文 字 や 単 語 が 持 つ シ ェ ル に 対 す る 特 別 な 意 味 を な く せ ま す 。 ク ォ ー ト を 用 い る と 、 特 殊 文 字 の 特 殊 な 扱 い を 無 効 に し た り 、 予 約 語 が 予 約 語 と し て 識 別 さ れ る こ と を 防 い だ り 、 パ ラ メ ー タ の 展 開 を 防 い だ り で き ま す 。 前 述 の 定 義 で 挙 げ た メ タ 文 字 (metacharacters) に は そ れ ぞ れ 特 殊 な 意 味 が あ る の で 、 そ の 文 字 自 身 を 表 す た め に は ク ォ ー ト し な け れ ば な り ま せ ん 。 コ マ ン ド の 履 歴 展 開 の 機 能 (後 述 の 履 歴 の 展 開 を 参 照 ) が 使 わ れ て い る と き に は 、 履 歴 展 開 文 字 (通 常 は !) の 履 歴 展 開 を 防 ぐ た め に は ク ォ ー ト し な け れ ば な り ま せ ん 。 ク ォ ー ト の 方 法 に は 、 エ ス ケ ー プ 文 字 (escape character), シ ン グ ル ク ォ ー ト 、 ダ ブ ル ク ォ ー ト の 3 種 類 が あ り ま す 。 ク ォ ー ト さ れ て い な い バ ッ ク ス ラ ッ シ ュ (\) は エ ス ケ ー プ 文 字 で す 。 エ ス ケ ー プ 文 字 は <newline> と い う 例 外 を 除 き 、 後 に 続 く 文 字 1 つ の 文 字 と し て の 値 を 保 持 さ せ ま す 。 \<newline> と い う 組 み 合 わ せ が 現 わ れ 、 か つ バ ッ ク ス ラ ッ シ ュ 自 身 が ク ォ ー ト さ れ て い な い 場 合 に は 、 \<newline> は 行 を 継 続 す る こ と を 表 し ま す (つ ま り 、 入 力 ス ト リ ー ム か ら 改 行 文 字 が 削 除 さ れ 、 実 質 的 に 無 視 さ れ ま す )。 シ ン グ ル ク ォ ー ト で 文 字 を 囲 む と 、 ク ォ ー ト 内 部 の そ れ ぞ れ の 文 字 は 文 字 と し て の 値 を 保 持 し ま す 。 シ ン グ ル ク ォ ー ト の 間 に シ ン グ ル ク ォ ー ト を 置 く こ と は で き ま せ ん 。 こ れ は バ ッ ク ス ラ ッ シ ュ を 前 に 付 け て も 同 じ で す 。 ダ ブ ル ク ォ ー ト で 文 字 を 囲 む と ク ォ ー ト 内 部 の 全 て の 文 字 は 文 字 と し て の 値 を 保 持 し ま す が 、 $, `, \ は 例 外 と な り ま す 。 履 歴 展 開 が 有 効 な と き に は 、 ! が こ れ に 加 わ り ま す 。 $` は ダ ブ ル ク ォ ー ト の 内 部 で も 特 殊 な 意 味 を 失 い ま せ ん 。 バ ッ ク ス ラ ッ シ ュ の 場 合 は 、 次 の 文 字 が $, `, ", \, <newline> の い ず れ か で あ る 場 合 に 限 り 特 殊 な 意 味 を 失 い ま せ ん 。 前 に バ ッ ク ス ラ ッ シ ュ を 付 け れ ば 、 ダ ブ ル ク ォ ー ト 文 字 を ダ ブ ル ク ォ ー ト に よ る ク ォ ー ト の 内 部 で ク ォ ー ト で き ま す 。 履 歴 展 開 は 有 効 で あ れ ば 実 行 さ れ ま す が 、 ダ ブ ル ク ォ ー ト 中 の ! が バ ッ ク ス ラ ッ シ ュ で エ ス ケ ー プ さ れ て い る 場 合 を 除 き ま す 。 ! の 前 の バ ッ ク ス ラ ッ シ ュ は 削 除 さ れ ま せ ん 。 特 殊 な パ ラ メ ー タ で あ る *@ は 、 ダ ブ ル ク ォ ー ト 内 部 で も 特 殊 な 意 味 を 失 い ま せ ん (後 述 の パ ラ メ ー タ を 参 照 )。

$string’ の 形 式 を 持 つ 単 語 は 特 殊 な 扱 い を 受 け ま す 。 こ の 単 語 は string に 展 開 さ れ 、 そ れ か ら ANSI C 標 準 で 仕 様 が 決 め ら れ て い る 、 バ ッ ク ス ラ ッ シ ュ で エ ス ケ ー プ さ れ て い る 文 字 に 置 き 換 え ら れ ま す 。 バ ッ ク ス ラ ッ シ ュ エ ス ケ ー プ シ ー ケ ン ス は 、 (も し 存 在 す れ ば ) 以 下 の よ う に デ コ ー ド さ れ ま す :

\a 警 告

(ベ ル )

\b バ ッ ク

ス ペ ー ス

\e

\E エ ス ケ ー プ 文 字

\f フ ォ ー ム フ ィ ー ド

\n 改 行

\r 復 帰

(carriage return)

\t 水 平 タ ブ

\v 垂 直 タ ブ

\\ バ ッ ク ス ラ ッ シ ュ

\' シ ン グ ル ク ォ ー ト

\" ダ ブ ル ク ォ ー ト

\nnn

8 進 値 が nnn で あ る 8 ビ ッ ト 文 字 (1 文 字 に つ き 数 字 1〜 3 桁 )

\xHH

16 進 値 が HH で あ る 8 ビ ッ ト 文 字 (16 進 で 1〜 2 桁 )。

\uHHHH

16 進 値 が HHHH で あ る ユ ニ コ ー ド (ISO/IEC 10646) 文 字 (16 進 1〜 4 桁 )。

\UHHHHHHHH

16 進 値 が HHHHHHHH で あ る ユ ニ コ ー ド (ISO/IEC 10646) 文 字 (16 進 1〜 8 桁 )。

\cx

control−x の 文 字

展 開 さ れ た 結 果 は シ ン グ ル ク ォ ー ト さ れ て い る の と 同 じ 状 態 で 、 ド ル 記 号 は 存 在 し な か っ た か の よ う に 扱 わ れ ま す 。 ダ ブ ル ク ォ ー ト さ れ た 文 字 列 の 前 に ド ル 記 号 が あ る と ($"string")、 文 字 列 は 現 在 の ロ ケ ー ル に 従 っ て 変 換 さ れ ま す 。 現 在 の ロ ケ ー ル が C ま た は POSIX な ら ば 、 ド ル 記 号 は 無 視 さ れ ま す 。 文 字 列 が 変 換 さ れ た り 置 換 さ れ た り し た 場 合 に は 、 そ の 結 果 は ダ ブ ル ク ォ ー ト さ れ て い る の と 同 じ 状 態 に な り ま す 。

パ ラ メ ー タ

パ ラ メ ー タ (parameter) は 値 を 保 持 す る た め の も の で す 。 パ ラ メ ー タ は 名 前 、 数 字 、 後 述 の 特 殊 な パ ラ メ ー タ で 挙 げ る 特 殊 文 字 の い ず れ か で 表 現 さ れ ま す 。 シ ェ ル で の 用 法 に お い て は 、 変 数 (variable) と は 名 前 で 表 現 さ れ た パ ラ メ ー タ で す 。 変 数 は と 0 個 以 上 の 属 性 を 持 ち ま す 。 属 性 は declare 組 み 込 み コ マ ン ド (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド declare の 項 を 参 照 ) で 設 定 さ れ ま す 。 パ ラ メ ー タ に 値 が 代 入 さ れ て い れ ば 、 そ の パ ラ メ ー タ は 設 定 (set) さ れ て い る と 言 わ れ ま す 。 空 文 字 列 も 有 効 な 値 で す 。 一 度 値 を 設 定 す る と 、 組 み 込 み コ マ ン ド の unset を 使 わ な け れ ば 削 除 (unset) で き ま せ ん (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。 変 数 に は 、 以 下 の 構 文 で 代 入 で き ま す :

name=[value]

value が 与 え ら れ な か っ た 場 合 、 変 数 に は 空 文 字 列 が 代 入 さ れ ま す 。 全 て の value に 対 し て 、 チ ル ダ 展 開 、 パ ラ メ ー タ と 変 数 の 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 、 ク ォ ー ト 除 去 が 行 わ れ ま す (後 述 の 展 開 を 参 照 )。 変 数 の 整 数 属 性 が 設 定 さ れ て い る 場 合 (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )、 $((...)) の 展 開 を 使 っ て い な く て も value に 対 し て の 算 術 展 開 が 行 わ れ ま す (後 述 の 算 術 式 展 開 を 参 照 )。 特 殊 パ ラ メ ー タ で 後 述 す る "$@" と い う 例 外 を 除 い て 、 単 語 の 分 割 は 行 わ れ ま せ ん 。 パ ス 名 展 開 も 実 行 さ れ ま せ ん 。 代 入 文 は 組 み 込 み コ マ ン ド の alias, declare, typeset, export, readonly, local の 引 き 数 で も 使 わ れ ま す 。 代 入 文 で シ ェ ル 変 数 や 配 列 の イ ン デ ッ ク ス に 値 を 代 入 す る 場 面 で は 、 += 演 算 子 を 使 っ て 変 数 の 直 前 の 値 に 追 加 し た り 加 算 し た り で き ま す 。 += を 整 数 属 性 が 設 定 さ れ た 変 数 に 対 し て 使 う と 、 は 算 術 式 展 開 と し て 評 価 さ れ 、 変 数 の 現 在 の 値 に 加 算 さ れ ま す 。 += を 配 列 変 数 へ の 複 合 代 入 (後 述 の 配 列 を 参 照 ) で 使 う と 、 変 数 の 現 在 の 値 は (= を 使 っ た と き と は 違 っ て ) 削 除 さ れ ま せ ん 。 イ ン デ ッ ク ス に よ る 配 列 の 場 合 は 、 新 し い 値 が 最 大 の イ ン デ ッ ク ス よ り 一 つ 大 き い イ ン デ ッ ク ス か ら 配 列 に 追 加 さ れ ま す 。 連 想 配 列 の 場 合 は 、 新 し い キ ー と 値 の 組 が 追 加 さ れ ま す 。 文 字 列 の 値 の 変 数 に 対 し て 使 う と 、 が 展 開 さ れ て 、 変 数 の 元 の 値 の 後 に 追 加 さ れ ま す 。 位 置 パ ラ メ ー タ (Positional Parameters) 位 置 パ ラ メ ー タ (positional parameter) は 、 1 桁 以 上 の 数 値 で 表 さ れ る パ ラ メ ー タ で す 。 た だ し 0 は 含 み ま せ ん 。 位 置 パ ラ メ ー タ は 、 シ ェ ル が 起 動 さ れ た と き に シ ェ ル の 引 き 数 が 代 入 さ れ ま す が 、 組 み 込 み コ マ ン ド の set を 使 っ て 代 入 し 直 す こ と も で き ま す 。 代 入 文 を 使 っ て 位 置 パ ラ メ ー タ へ の 代 入 を 行 う こ と は で き ま せ ん 。 シ ェ ル 関 数 が 実 行 さ れ る と 、 位 置 パ ラ メ ー タ は 一 時 的 に 置 き 換 え ら れ ま す (後 述 の 関 数 を 参 照 )。

2 桁 以 上 の 数 値 を 含 む 位 置 パ ラ メ ー タ を 展 開 す る と き に は 、 ブ レ ー ス ({}) で 囲 ま な け れ ば な り ま せ ん (後 述 の 展 開 を 参 照 )。 特 殊 パ ラ メ ー タ シ ェ ル は い く つ か の パ ラ メ ー タ を 特 別 扱 い し ま す 。 こ の よ う な パ ラ メ ー タ は 参 照 さ れ る だ け で あ り 、 値 を 代 入 す る こ と は 許 さ れ ま せ ん 。

*

(1 か ら 始 ま る ) 全 て の 位 置 パ ラ メ ー タ に 展 開 さ れ ま す 。 ダ ブ ル ク ォ ー ト の 内 部 で 展 開 が 行 わ れ た と き は 、 そ れ ぞ れ の パ ラ メ ー タ を 特 別 な 変 数 で あ る IFS の 最 初 の 文 字 で 区 切 っ て 並 べ た 1 つ の 単 語 に 展 開 さ れ ま す 。 つ ま り 、 "$*" は "$1c$2c..." と 同 じ で す 。 こ こ で c は 変 数 IFS の 値 の 最 初 の 文 字 で す 。 IFS が 設 定 さ れ て い な け れ ば 、 パ ラ メ ー タ は 空 白 で 区 切 ら れ ま す 。 IFS が 空 文 字 列 の 場 合 、 パ ラ メ ー タ の 間 に は 区 切 り 文 字 は 入 ら ず 、 全 て の パ ラ メ ー タ は 繋 げ ら れ ま す 。

@

(1 か ら 始 ま る ) 全 て の 位 置 パ ラ メ ー タ に 展 開 さ れ ま す 。 ダ ブ ル ク ォ ー ト の 内 部 で 展 開 が 行 わ れ た と き は 、 そ れ ぞ れ の パ ラ メ ー タ は 別 々 の 単 語 に 展 開 さ れ ま す 。 つ ま り "$@" は "$1" "$2" ... と 同 じ で す 。 単 語 の 中 で ダ ブ ル ク ォ ー ト の 展 開 が 行 わ れ る と き に は 、 最 初 の パ ラ メ ー タ の 展 開 結 果 に 元 の 単 語 の ダ ブ ル ク ォ ー ト よ り 前 の 部 分 が 結 び 付 き 、 最 後 の パ ラ メ ー タ の 展 開 結 果 に 元 の 単 語 の ダ ブ ル ク ォ ー ト よ り 後 の 部 分 が 結 び 付 き ま す 。 位 置 パ ラ メ ー タ が な い 場 合 に は 、 "$@" や $@ を 展 開 し て も 無 か っ た こ と に な り ま す (つ ま り 取 り 除 か れ ま す )。

#

位 置 パ ラ メ ー タ の 個 数 を 示 す 10 進 値 に 展 開 さ れ ま す 。
?
最 後 に 実 行 さ れ た フ ォ ア グ ラ ウ

ン ド の パ イ プ ラ イ ン の 終 了 ス テ ー タ ス に 展 開 さ れ ま す 。

現 在 の オ プ シ ョ ン フ ラ グ に 展 開 さ れ ま す 。 こ れ は 起 動 の と き に 指 定 し た り 、 組 み 込 み コ マ ン ド

set で 設 定 し た り 、 ( −i オ プ シ ョ ン 等 で ) シ ェ ル 自 身 が 設 定 し た り し ま す 。

$ シ ェ ル の プ ロ セ ス

ID に 展 開 さ れ ま す 。 () を 使 っ た サ ブ シ ェ ル の 内 部

で は 、 $ は サ ブ シ ェ ル で は な く 、 現 在 の シ ェ ル の プ ロ セ ス ID に 展 開 さ れ ま す 。

! 最 後 に 実 行 さ れ た バ ッ ク グ ラ ウ ン ド

(非 同 期 ) コ マ ン ド の プ ロ セ ス ID

に 展 開 さ れ ま す 。

0 シ ェ ル ま た は シ ェ ル ス ク リ プ ト の 名 前 に 展 開 さ れ ま す 。 こ れ は シ ェ ル の 初 期 化 時 に 設 定 さ れ ま す 。 コ マ ン ド を 記 述 し た フ ァ イ ル を 指 定 し て

bash を 起 動 し た 場 合 、 $0 に は そ の フ ァ イ ル の 名 前 が 設 定 さ れ ま す 。 −c オ プ シ ョ ン を 付 け て bash を 起 動 し た 場 合 、 実 行 す る 文 字 列 の 後 に 引 き 数 が あ れ ば 、 そ の 最 初 の 値 が $0 に 設 定 さ れ ま す 。 引 き 数 が な け れ ば 、 bash を 起 動 す る と き に 使 用 し た 名 前 が 引 き 数 0 と し て 与 え ら れ $0 に 設 定 さ れ ま す 。

_ シ ェ ル の 起 動 時 に は 、 環 境 ま た は 引 き 数 リ ス ト で 渡 さ れ た 、 実 行 す る シ ェ ル ま た は シ ェ ル ス ク リ プ ト の 絶 対 パ ス 名 が 設 定 さ れ ま す 。 そ の 後 で は 、 直 前 の コ マ ン ド に 対 す る 最 後 の 引 き 数

(展 開 後 の も の ) に 展 開 さ れ ま す 。 ま た 、 実 行 す る 各 コ マ ン ド の 完 全 な パ ス 名 が 設 定 さ れ 、 そ の コ マ ン ド の 環 境 に エ ク ス ポ ー ト さ れ ま す 。 メ ー ル を チ ェ ッ ク す る と き に は 、 こ の パ ラ メ ー タ は 現 在 チ ェ ッ ク し て い る メ ー ル フ ァ イ ル 名 を 保 持 し ま す 。 シ ェ ル 変 数 以 下 の 変 数 は シ ェ ル が 設 定 し ま す :

BASH 現 在 実 行 し て い る

bash を 起 動 し た と き に 使 わ れ た 、 完 全 な フ ァ イ ル 名

に 展 開 さ れ ま す 。

BASHOPTS コ ロ ン 区 切 り の リ ス ト で 、 有 効 に な っ て い る シ ェ ル の オ プ シ ョ ン を 示 し ま す 。 リ ス ト 中 の そ れ ぞ れ の 単 語 は 、 組 み 込 み コ マ ン ド shopt−s オ プ シ ョ ン (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) に 対 す る 有 効 な 引 き 数 に な っ て い ま す 。 BASHOPTS に 現 わ れ る オ プ シ ョ ン は 、 shopt コ マ ン ド で on と 表 示 さ れ る も の で す 。 も し bash を 起 動 し た と き に 、 こ の 変 数 が 環 境 変 数 に 設 定 さ れ て い れ ば 、 起 動 フ ァ イ ル を 読 み 込 む 前 に 、 リ ス ト に あ る 全 て の シ ェ ル オ プ シ ョ ン が 有 効 に 設 定 さ れ ま す 。 こ の 変 数 は 読 み 込 み 専 用 で す 。
BASHPID
現 在 の bash の プ ロ セ ス ID に 展 開 さ れ ま す 。 bash を 再 初 期 化 し な い サ ブ シ ェ ル の よ う な 、 い く つ か の 環 境 に お い て は 、 $$ と 値 が 異 な り ま す 。
BASH_ALIASES
エ イ リ ア ス の 内 部 的 な リ ス ト に 対 応 す る 連 想 配 列 変 数 で す 。 エ イ リ ア ス は 通 常 、 組 み 込 み コ マ ン ド alias で 操 作 し ま す 。 こ の 配 列 に 要 素 を 追 加 す る と 、 エ イ リ ア ス の リ ス ト に も 追 加 さ れ ま す 。 配 列 か ら 要 素 を 削 除 す る と 、 エ イ リ ア ス が リ ス ト か ら 削 除 さ れ ま す 。
BASH_ARGC

bash の 現 在 の 呼 び 出 し ス タ ッ ク に つ い て 、 フ レ ー ム ご と の 引 き 数 の 数 が 並 ん だ 配 列 変 数 で す 。 現 在 の サ ブ ル ー チ ン (シ ェ ル 関 数 や 、 .source で 実 行 さ れ た ス ク リ プ ト ) の 引 き 数 の 数 が 、 ス タ ッ ク の 一 番 上 に 置 か れ ま す 。 サ ブ ル ー チ ン が 実 行 さ れ る と 、 渡 さ れ た パ ラ メ ー タ の 数 が BASH_ARGC に 追 加 さ れ ま す 。 シ ェ ル が BASH_ARGC を 設 定 す る の は 、 拡 張 デ バ ッ グ モ ー ド の と き だ け で す (後 述 の 組 み 込 み コ マ ン ド shoptextdebug オ プ シ ョ ン を 参 照 )。

BASH_ARGV

bash の 現 在 の 呼 び 出 し ス タ ッ ク に つ い て 、 全 て の 引 き 数 が 並 ん だ 配 列 変 数 で す 。 一 連 の 呼 び 出 し の う ち 、 最 後 に 呼 ば れ た サ ブ ル ー チ ン の 最 後 の 引 き 数 が 、 ス タ ッ ク の 一 番 上 に 置 か れ ま す 。 最 初 に 呼 ば れ た サ ブ ル ー チ ン の 最 初 の 引 き 数 が 、 ス タ ッ ク の 一 番 下 に な り ま す 。 サ ブ ル ー チ ン が 実 行 さ れ る と 、 渡 さ れ た パ ラ メ ー タ が BASH_ARGV に 追 加 さ れ ま す 。 シ ェ ル が BASH_ARGV を 設 定 す る の は 、 拡 張 デ バ ッ グ モ ー ド の と き だ け で す (後 述 の 組 み 込 み コ マ ン ド shoptextdebug オ プ シ ョ ン を 参 照 )。

BASH_CMDS

bash が 内 部 に 持 つ 、 コ マ ン ド の ハ ッ シ ュ テ ー ブ ル に 対 応 す る 連 想 配 列 変 数 で す 。 ハ ッ シ ュ テ ー ブ ル は 通 常 、 組 み 込 み コ マ ン ド hash で 操 作 し ま す 。 こ の 配 列 に 要 素 を 追 加 す る と 、 ハ ッ シ ュ テ ー ブ ル に も 追 加 さ れ ま す 。 配 列 か ら 要 素 を 削 除 す る と 、 ハ ッ シ ュ テ ー ブ ル か ら 削 除 さ れ ま す 。

BASH_COMMAND 現 在 実 行 し て い る か 実 行 し よ う と し て い る コ マ ン ド で す 。 た だ し 、 ト ラ ッ プ に よ っ て シ ェ ル が 実 行 し て い る コ マ ン ド は 別 で 、 そ の 場 合 は 、 ト ラ ッ プ の 発 動 時 に 実 行 し て い た コ マ ン ド に な り ま す 。
BASH_EXECUTION_STRING
起 動 オ プ シ ョ ン −c で 指 定 さ れ た コ マ ン ド で す 。
BASH_LINENO
ソ ー ス フ ァ イ ル 中 の 行 番 号 か ら な る 配 列 変 数 で 、 そ れ ぞ れ の 要 素 は FUNCNAME の 各 要 素 が 呼 び 出 さ れ た 位 置 に 対 応 し ま す 。 つ ま り 、 ${BASH_LINENO[$i]} は ソ ー ス フ ァ イ ル (${BASH_SOURCE[$i+1]}) 中 で ${FUNCNAME[$i]} が 呼 び 出 さ れ た 行 番 号 で す 。 別 の シ ェ ル 関 数 か ら 参 照 さ れ る と ${BASH_LINENO[$i−1]} に な り ま す 。 現 在 の 行 番 号 は LINENO で 取 得 で き ま す 。
BASH_REMATCH
条 件 コ マ ン ド [[ 中 の 二 項 演 算 子 =~ に よ り 設 定 さ れ る 配 列 変 数 で す 。 イ ン デ ッ ク ス 0 の 要 素 は 、 正 規 表 現 全 体 に マ ッ チ す る 部 分 文 字 列 で す 。 イ ン デ ッ ク ス n の 要 素 は 、 n 番 目 の 括 弧 に よ る 部 分 式 に マ ッ チ し た 部 分 文 字 列 で す 。 こ の 変 数 は 読 み 込 み 専 用 で す 。
BASH_SOURCE
ソ ー ス フ ァ イ ル 名 か ら な る 配 列 変 数 で 、 そ れ ぞ れ の 要 素 は 配 列 変 数 FUNCNAME の 要 素 の シ ェ ル 関 数 が そ れ ぞ れ 定 義 さ れ た フ ァ イ ル 名 に 対 応 し ま す 。 シ ェ ル 関 数 ${FUNCNAME[$i]} は フ ァ イ ル ${BASH_SOURCE[$i]} で 定 義 さ れ 、 ${BASH_SOURCE[$i+1]} か ら 呼 ば れ て い ま す 。
BASH_SUBSHELL
サ ブ シ ェ ル や サ ブ シ ェ ル 環 境 が 作 成 さ れ る た び に 1 ず つ 増 え ま す 。 初 期 値 は 0 で す 。
BASH_VERSINFO
読 み 込 み 専 用 の 配 列 変 数 で 、 配 列 の 各 要 素 は 現 在 実 行 さ れ て い る bash の バ ー ジ ョ ン 情 報 を 持 っ て い ま す 。 配 列 変 数 の 要 素 に 代 入 さ れ る 内 容 を 以 下 に 示 し ま す :

BASH_VERSINFO[0] メ ジ ャ ー バ ー ジ ョ ン 番 号

(リ リ ー ス )。

BASH_VERSINFO[1] マ イ ナ ー バ ー ジ ョ ン 番 号

(バ ー ジ ョ ン )。

BASH_VERSINFO[2] パ ッ チ レ ベ ル 。

BASH_VERSINFO[3] ビ ル ド バ ー ジ ョ ン 。

BASH_VERSINFO[4] リ リ ー ス ス テ ー タ ス

(beta1 な ど )。

BASH_VERSINFO[5]

MACHTYPE の 値 。

BASH_VERSION 現 在 実 行 し て い る bash の バ ー ジ ョ ン を 示 す 文 字 列 に 展 開 さ れ ま す 。
COMP_CWORD
現 在 カ ー ソ ル 位 置 が あ る 単 語 の 配 列 変 数 ${COMP_WORDS} に お け る イ ン デ ッ ク ス で す 。 こ の 変 数 は プ ロ グ ラ ム 補 完 機 能 (後 述 の プ ロ グ ラ ム 補 完 を 参 照 ) か ら 呼 ば れ た シ ェ ル 関 数 に お い て の み 有 効 で す 。
COMP_KEY
現 在 の 補 完 関 数 を 呼 び 出 し た キ ー (ま た は キ ー シ ー ケ ン ス の 最 後 の キ ー ) で す 。
COMP_LINE
現 在 の コ マ ン ド ラ イ ン で す 。 こ の 変 数 は プ ロ グ ラ ム 補 完 機 能 (後 述 の プ ロ グ ラ ム 補 完 を 参 照 ) か ら 呼 ば れ た シ ェ ル 関 数 や 外 部 コ マ ン ド に お い て の み 有 効 で す 。
COMP_POINT
現 在 の コ マ ン ド の 先 頭 か ら の 相 対 値 と し て 与 え ら れ た カ ー ソ ル 位 置 の イ ン デ ッ ク ス で す 。 現 在 の カ ー ソ ル 位 置 が 現 在 の 現 在 の コ マ ン ド の 最 後 に あ る 場 合 、 こ の 変 数 の 値 は ${#COMP_LINE} と 等 し く な り ま す 。 こ の 変 数 は プ ロ グ ラ ム 補 完 機 能 (後 述 の プ ロ グ ラ ム 補 完 を 参 照 ) か ら 呼 ば れ た シ ェ ル 関 数 や 外 部 コ マ ン ド に お い て の み 有 効 で す 。
COMP_TYPE
補 完 関 数 を 呼 び 出 し た 補 完 の タ イ プ に 対 応 す る 整 数 値 が 設 定 さ れ ま す 。 TAB は 通 常 の 補 完 で す 。 ? は 連 続 し た タ ブ 入 力 に よ る 候 補 の リ ス ト 表 示 で す 。 ! は 途 中 ま で 補 完 し た 後 の 候 補 の リ ス ト 表 示 で す 。 @ は 、 部 分 的 な 補 完 が で き な い と き の 候 補 の リ ス ト 表 示 で す 。 % は メ ニ ュ ー 補 完 (menu completion)で す 。 こ の 変 数 は プ ロ グ ラ ム 補 完 機 能 (後 述 の プ ロ グ ラ ム 補 完 を 参 照 ) か ら 呼 ば れ た シ ェ ル 関 数 と 外 部 コ マ ン ド に お い て の み 有 効 で す 。
COMP_WORDBREAKS
単 語 補 完 の と き に readline ラ イ ブ ラ リ が 単 語 分 割 の 区 切 り 文 字 と し て 扱 う 文 字 の 並 び で す 。 COMP_WORDBREAKS を unset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。
COMP_WORDS
現 在 の コ マ ン ド ラ イ ン の 各 単 語 か ら な る 配 列 変 数 (後 述 の 配 列 参 照 ) で す 。 コ マ ン ド ラ イ ン は readline と 同 じ よ う に 前 述 し た COMP_WORDBREAKS に よ っ て 単 語 に 分 割 さ れ ま す 。 こ の 変 数 は プ ロ グ ラ ム 補 完 機 能 (後 述 の プ ロ グ ラ ム 補 完 を 参 照 ) か ら 呼 ば れ た シ ェ ル 関 数 に お い て の み 有 効 で す 。

COPROC 無 名 の コ プ ロ セ ス

(前 述 の コ プ ロ セ ス を 参 照 ) が 入 出 力 す る フ ァ イ

ル ・ デ ィ ス ク リ プ タ ー を 保 持 す る 配 列 変 数 (後 述 の 配 列 参 照 ) で す 。

DIRSTACK 現 在 の デ ィ レ ク ト リ ス タ ッ ク の 内 容 を 持 つ 配 列 変 数 (後 述 の 配 列 を 参 照 ) で す 。 組 み 込 み コ マ ン ド dirs を 使 う と 、 ス タ ッ ク 中 の デ ィ レ ク ト リ が ス タ ッ ク 順 に 表 示 さ れ ま す 。 配 列 変 数 の 要 素 に 代 入 を 行 う と 、 既 に ス タ ッ ク に 入 っ て い る デ ィ レ ク ト リ を 変 更 で き ま す が 、 デ ィ レ ク ト リ の 追 加 と 削 除 を 行 う た め に は 、 組 み 込 み コ マ ン ド の pushdpopd を 使 わ な け れ ば な り ま せ ん 。 こ の 変 数 に 代 入 を 行 っ て も 現 在 の 作 業 デ ィ レ ク ト リ は 変 わ り ま せ ん 。 DIRSTACK unset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。

EUID 現 在 の ユ ー ザ の 実 効 ユ ー ザ

ID に 展 開 さ れ ま す 。 初 期 化 は シ ェ ル の 起

動 時 に 行 わ れ ま す 。 こ の 変 数 は 読 み 込 み 専 用 で す 。

FUNCNAME 現 在 の 呼 び 出 し ス タ ッ ク に あ る 全 て の シ ェ ル 関 数 名 が 入 っ た 配 列 変 数 で す 。 イ ン デ ッ ク ス 0 の 要 素 は 、 実 行 中 の シ ェ ル 関 数 の 名 前 で す 。 最 も 下 の 要 素 (最 大 の イ ン デ ッ ク ス の 要 素 ) は "main". で す 。 こ の 変 数 は 、 シ ェ ル 関 数 を 実 行 し て い る 間 の み 存 在 し ま す 。 FUNCNAME へ の 代 入 は 効 果 が な く 、 エ ラ ー ス テ ー タ ス を 返 し ま す 。 FUNCNAMEunset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。 こ の 変 数 の 各 要 素 は 、 BASH_LINENOBASH_SOURCE の 各 要 素 に 対 応 し ま す 。 こ れ ら を 参 照 す る こ と で 、 呼 び 出 し ス タ ッ ク の 状 態 を 確 認 で き ま す 。 例 え ば 、 ${FUNCNAME[$i]} は フ ァ イ ル ${BASH_SOURCE[$i+1]} の 行 番 号 ${BASH_LINENO[$i]} か ら 呼 び 出 さ れ た も の で す 。 組 み 込 み コ マ ン ド caller を 実 行 す る と 、 こ れ ら の 情 報 か ら 現 在 の 呼 び 出 し ス タ ッ ク を 表 示 し ま す 。

GROUPS 現 在 の ユ ー ザ が メ ン バ に な っ て い る グ ル ー プ の リ ス ト を 含 ん だ 配 列 変 数 で す 。

GROUPS へ の 代 入 は 効 果 が な く 、 エ ラ ー ス テ ー タ ス を 返 し ま す 。 GROUPS が unset さ れ た 場 合 は こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 そ の 後 に 再 設 定 さ れ た と し て も 元 に 戻 り ま せ ん 。
HISTCMD
現 在 の コ マ ン ド の 履 歴 番 号 (履 歴 リ ス ト に お け る イ ン デ ッ ク ス ) で す 。 HISTCMD unset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。
HOSTNAME
現 在 の ホ ス ト 名 が 自 動 的 に 設 定 さ れ ま す 。
HOSTTYPE

bash を 実 行 す る マ シ ン の 種 類 を ユ ニ ー ク に 記 述 す る 文 字 列 が 自 動 的 に 設 定 さ れ ま す 。 デ フ ォ ル ト 値 は シ ス テ ム 依 存 で す 。

LINENO こ の 変 数 が 参 照 さ れ る と 、 そ の 場 所 ご と に 、 ス ク リ プ ト や 関 数 に お け る 現 在 の 行 番 号

(1 か ら 始 ま り ま す ) を 表 す 10 進 値 に 置 き 換 わ り ま す 。 ス ク リ プ ト や 関 数 の 内 部 で な い 場 合 に は 、 意 味 の あ る 値 が 代 入 さ れ る こ と は 保 証 さ れ ま せ ん 。 LINENO unset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。
MACHTYPE

bash を 実 行 す る シ ス テ ム の 種 類 を 完 全 に 指 定 す る 文 字 列 が 、 GNU 標 準 の cpu−company−system の 形 式 で 設 定 さ れ ま す 。 デ フ ォ ル ト 値 は シ ス テ ム 依 存 で す 。

MAPFILE 組 み 込 み コ マ ン ド mapfile に 変 数 名 が 指 定 さ れ な か っ た と き に 読 み 込 ん だ テ キ ス ト を 保 持 す る 配 列 変 数 (後 述 の 配 列 を 参 照 ) で す 。

OLDPWD

cd コ マ ン ド で 設 定 さ れ た 、 1 つ 前 の 作 業 デ ィ レ ク ト リ 。

OPTARG

組 み 込 み コ マ ン ド getopts で 処 理 し た 最 後 の オ プ シ ョ ン 引 き 数 の 値 で す (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。

OPTIND

組 み 込 み コ マ ン ド getopts で 次 に 処 理 さ れ る オ プ シ ョ ン 引 き 数 の イ ン デ ッ ク ス で す (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。
OSTYPE

bash を 実 行 す る オ ペ レ ー テ ィ ン グ シ ス テ ム を 記 述 す る 文 字 列 が 自 動 的 に 設 定 さ れ ま す 。 デ フ ォ ル ト 値 は シ ス テ ム 依 存 で す 。

PIPESTATUS フ ォ ア グ ラ ウ ン ド で 最 後 に 実 行 し た パ イ プ ラ イ ン の 各 プ ロ セ ス の 終 了 ス テ ー タ ス の リ ス ト を 含 む 配 列 変 数 で す (後 述 の 配 列 を 参 照 )。 パ イ プ ラ イ ン に は 1 つ の コ マ ン ド し か な く て も か ま い ま せ ん 。

PPID そ の シ ェ ル の 親 の プ ロ セ ス

ID。 こ の 変 数 は 読 み 込 み 専 用 で す 。

PWD

cd コ マ ン ド で 設 定 さ れ た 現 在 の 作 業 デ ィ レ ク ト リ 。

RANDOM こ の パ ラ メ ー タ が 参 照 さ れ る た び に 、

0 か ら 32767 ま で の ラ ン ダ ム な

整 数 が 生 成 さ れ ま す 。 RANDOM に 値 を 代 入 す る と 、 乱 数 の 列 を 初 期 化 で き ま す 。 RANDOM unset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。

READLINE_LINE

readline の 編 集 バ ッ フ ァ の 内 容 で す 。 "bind -x" (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) で 使 い ま す 。

READLINE_POINT

readline の 編 集 バ ッ フ ァ で の 挿 入 ポ イ ン ト の 位 置 で す 。 "bind -x" (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) で 使 い ま す 。

REPLY 組 み 込 み コ マ ン ド

read に 引 き 数 が 与 え ら れ な か っ た と き に 読 み 込 ま れ

た 行 が 設 定 さ れ ま す 。

SECONDS こ の パ ラ メ ー タ を 参 照 す る と 、 シ ェ ル が 起 動 さ れ て か ら の 秒 数 が 返 さ れ ま す 。 SECONDS に 値 を 代 入 し た 場 合 、 そ れ 以 降 の 参 照 に お い て 返 さ れ る 値 は 、 代 入 さ れ た 値 と 代 入 以 降 の 秒 数 を 足 し た 値 に な り ま す 。 SECONDS unset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。
SHELLOPTS
コ ロ ン 区 切 り の リ ス ト で 、 有 効 に な っ て い る シ ェ ル の オ プ シ ョ ン を 示 し ま す 。 リ ス ト 中 の そ れ ぞ れ の 単 語 は 、 組 み 込 み コ マ ン ド set−o オ プ シ ョ ン (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) に 対 す る 有 効 な 引 き 数 に な っ て い ま す 。 SHELLOPTS に 入 っ て い る オ プ シ ョ ン は 、 set −o を 実 行 し た 場 合 に も on で あ る と 報 告 さ れ ま す 。 こ の 変 数 が bash の 起 動 時 に 環 境 変 数 に 入 っ て い た 場 合 、 ど の 初 期 化 フ ァ イ ル を 読 む よ り も 前 に リ ス ト 中 の シ ェ ル オ プ シ ョ ン が 有 効 に な り ま す 。 こ の 変 数 は 読 み 込 み 専 用 で す 。

SHLVL

bash が 起 動 す る と き に 、 環 境 変 数 で 渡 さ れ た 値 か ら 1 増 や し た 値 が 設 定 さ れ ま す 。

UID

現 在 の ユ ー ザ の ユ ー ザ ID に 展 開 さ れ ま す 。 初 期 化 は シ ェ ル の 起 動 時 に 行 わ れ ま す 。 こ の 変 数 は 読 み 込 み 専 用 で す 。 以 下 の 変 数 は シ ェ ル が 使 用 し ま す 。 場 合 に よ っ て は 、 bash が デ フ ォ ル ト 値 を 変 数 に 代 入 し ま す 。 そ の よ う な 場 合 に つ い て は そ れ ぞ れ 注 記 し ま す 。

BASH_ENV

bash が シ ェ ル ス ク リ プ ト を 実 行 す る と き に こ の 値 が 設 定 さ れ て い る 場 合 、 こ の 値 は (~/.bashrc の よ う に ) シ ェ ル を 初 期 化 す る コ マ ン ド が 書 か れ て い る フ ァ イ ル 名 と 解 釈 さ れ ま す 。 BASH_ENV の 値 を フ ァ イ ル 名 と し て 処 理 す る 前 に は 、 パ ラ メ ー タ 展 開 、 コ マ ン ド 置 換 、 算 術 的 展 開 が 行 わ れ ま す 。 こ の 結 果 の フ ァ イ ル を 検 索 す る 際 に は PATH は 使 用 さ れ ま せ ん 。

BASH_XTRACEFD 有 効 な フ ァ イ ル ・ デ ィ ス ク リ プ タ ー に 対 応 す る 整 数 を セ ッ ト す る と 、 bashset -x が 設 定 さ れ た と き に 、 生 成 さ れ た ト レ ー ス 出 力 を そ の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー に 出 力 し ま す 。 BASH_XTRACEFD unset さ れ る か 、 新 し い 値 が 代 入 さ れ る と 、 そ れ ま で 設 定 さ れ て い た フ ァ イ ル ・ デ ィ ス ク リ プ タ ー は ク ロ ー ズ さ れ ま す 。 BASH_XTRACEFD を unset す る か 空 文 字 列 を 代 入 す る と 、 ト レ ー ス 出 力 は 標 準 エ ラ ー 出 力 に 送 ら れ ま す 。 BASH_XTRACEFD に 2 (標 準 エ ラ ー 出 力 の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー ) を 設 定 し て し ま う と 、 unset し た と き に 標 準 エ ラ ー 出 力 が ク ロ ー ズ さ れ て し ま う こ と に 注 意 し て く だ さ い 。

CDPATH

cd コ マ ン ド の 検 索 パ ス で す 。 こ れ は 、 cd コ マ ン ド で 指 定 し た 対 象 デ ィ レ ク ト リ を 探 す デ ィ レ ク ト リ を コ ロ ン で 区 切 っ て 並 べ た リ ス ト で す 。 例 え ば 、 ".:~:/usr" と い っ た 値 に な り ま す 。

COLUMNS 組 み 込 み コ マ ン ド select に よ っ て 、 選 択 さ れ た リ ス ト を 表 示 す る 際 の 端 末 幅 の 決 定 に 用 い ら れ ま す 。 SIGWINCH を 受 信 す る と 自 動 的 に 設 定 さ れ ま す 。
COMPREPLY

bash が 可 能 な 補 完 候 補 を 読 み 込 む 配 列 変 数 で す 。 こ の 値 は プ ロ グ ラ ム 補 完 機 能 (後 述 の プ ロ グ ラ ム 補 完 を 参 照 ) に よ っ て 呼 び 出 さ れ た シ ェ ル 関 数 に よ っ て 生 成 さ れ ま す 。

EMACS

bash が 起 動 し た と き に こ の 環 境 変 数 が 設 定 さ れ て 値 が "t", に な っ て い る と 、 Emacs の シ ェ ル バ ッ フ ァ で 動 作 し て い る と み な し 、 行 編 集 を 無 効 に し ま す 。

ENV

BASH_ENV と 類 似 の 変 数 で 、 POSIX モ ー ド で 使 わ れ ま す 。

FCEDIT

組 み 込 み コ マ ン ド fc が 使 う デ フ ォ ル ト の エ デ ィ タ で す 。

FIGNORE フ ァ イ ル 名 補 完 (後 述 の READLINE を 参 照 ) を 行 う 際 に 無 視 す る サ フ ィ ッ ク ス を コ ロ ン で 区 切 っ て 並 べ た リ ス ト で す 。 FIGNORE の エ ン ト リ の い ず れ か に サ フ ィ ッ ク ス が マ ッ チ す る フ ァ イ ル 名 は 、 フ ァ イ ル 名 補 完 に マ ッ チ す る フ ァ イ ル の リ ス ト か ら 除 外 さ れ ま す 。 例 え ば 値 と し て ".o:~" を 設 定 し ま す 。
FUNCNEST

0 よ り 大 き い 数 値 を 設 定 す る と 、 関 数 呼 び 出 し を 何 重 ま で 許 す か の 最 大 レ ベ ル を 決 め ま す 。 こ の レ ベ ル を 超 え て 関 数 を 呼 び 出 す と 、 コ マ ン ド が 異 常 終 了 し ま す 。

GLOBIGNORE パ ス 名 展 開 で 無 視 す る フ ァ イ ル 名 の 集 合 を 定 義 す る パ タ ー ン を コ ロ ン で 区 切 っ て 並 べ た リ ス ト で す 。 パ ス 名 展 開 パ タ ー ン に マ ッ チ す る フ ァ イ ル 名 が GLOBIGNORE 内 の パ タ ー ン の ど れ か に も マ ッ チ す る 場 合 、 マ ッ チ し た も の の リ ス ト か ら 削 除 さ れ ま す 。
HISTCONTROL
履 歴 リ ス ト に 入 れ る コ マ ン ド を 制 御 す る 値 を コ ロ ン で 区 切 っ て 並 べ た リ ス ト で す 。 ignorespace の 値 が 設 定 さ れ て い る と 、 空 白 文 字 で 始 ま る 行 は 履 歴 リ ス ト に 入 り ま せ ん 。 ignoredups の 値 が 設 定 さ れ て い る と 、 履 歴 の 最 後 の 行 に マ ッ チ す る 行 は 履 歴 リ ス ト に 入 り ま せ ん 。 ignoreboth を 指 定 す る と ignorespaceignoredups の 両 方 が 指 定 さ れ ま す 。 erasedups の 値 が 設 定 さ れ て い る と 、 行 が 保 存 さ れ る 前 に 、 現 在 の 行 に 一 致 す る 過 去 の 行 が 履 歴 リ ス ト か ら 削 除 さ れ ま す 。 上 記 以 外 の 値 を 設 定 し て も 無 視 さ れ ま す 。 HISTCONTROL が 設 定 さ れ て い な い 場 合 や 、 不 正 な 値 が 設 定 さ れ て い る 場 合 に は 、 シ ェ ル の パ ー ザ が 読 み 込 ん だ 全 て の 行 は HISTIGNORE の 値 が 示 す 条 件 の 下 で 履 歴 リ ス ト に 保 存 さ れ ま す 。 複 数 行 に ま た が る 複 合 コ マ ン ド の 場 合 は 2 番 目 以 降 の 行 が 調 べ ら れ る こ と は あ り ま せ ん 。 よ っ て 、 こ れ ら は HISTCONTROL の 値 に 関 わ ら ず 履 歴 に 追 加 さ れ ま す 。
HISTFILE
コ マ ン ド 履 歴 が 保 存 さ れ る フ ァ イ ル の 名 前 (後 述 の 履 歴 を 参 照 )。 デ フ ォ ル ト 値 は ~/.bash_history で す 。 設 定 さ れ て い な い 場 合 、 対 話 シ ェ ル が 終 了 す る と き に 履 歴 の 保 存 が 行 わ れ ま せ ん 。
HISTFILESIZE
履 歴 フ ァ イ ル に 保 持 す る 履 歴 の 最 大 数 で す 。 こ の 変 数 に 値 が 代 入 さ れ た 場 合 、 そ の 行 数 を 越 え な い よ う に 、 必 要 に 応 じ て 古 い エ ン ト リ を 削 除 し て 履 歴 フ ァ イ ル を 切 り 詰 め ま す 。 デ フ ォ ル ト 値 は 500 で す 。 対 話 シ ェ ル が 終 了 す る と き に も 、 履 歴 フ ァ イ ル の サ イ ズ は フ ァ イ ル 書 き 込 み の 後 に こ の サ イ ズ に 切 り 詰 め ら れ ま す 。
HISTIGNORE
ど の コ マ ン ド 行 を 履 歴 リ ス ト に 保 存 す る か を 決 め る た め に 使 う パ タ ー ン を コ ロ ン で 区 切 っ て 並 べ た リ ス ト で す 。 そ れ ぞ れ の パ タ ー ン は 行 の 先 頭 か ら 比 較 さ れ 、 行 全 体 と 完 全 に 一 致 し な け れ ば な り ま せ ん (’*’ が 暗 黙 的 に 追 加 さ れ る こ と は あ り ま せ ん )。 行 に 対 す る 各 パ タ ー ン の 評 価 は HISTCONTROL で 指 定 し た チ ェ ッ ク が 行 わ れ た 後 で 実 行 さ れ ま す 。 通 常 の シ ェ ル の パ タ ー ン マ ッ チ ン グ 文 字 以 外 に 、 ’&’ が 履 歴 の 前 の 行 に マ ッ チ し ま す 。 バ ッ ク ス ラ ッ シ ュ を 使 っ て ’&’ を エ ス ケ ー プ で き ま す 。 マ ッ チ ン グ を 試 み る 前 に バ ッ ク ス ラ ッ シ ュ は 取 り 除 か れ ま す 。 複 数 行 に ま た が る 複 合 コ マ ン ド の 場 合 、 2 番 目 以 降 の 行 は 調 べ ら れ ま せ ん 。 よ っ て 、 こ れ ら は HISTIGNORE の 値 に 関 わ ら ず 履 歴 に 追 加 さ れ ま す 。
HISTSIZE
コ マ ン ド 履 歴 に 記 憶 す る コ マ ン ド の 数 (後 述 の HISTORY を 参 照 )。 デ フ ォ ル ト は 500 で す 。
HISTTIMEFORMAT
こ の 変 数 に 空 で な い 値 が 設 定 さ れ る と 、 組 み 込 み コ マ ン ド history で 履 歴 エ ン ト リ を 表 示 す る と き に タ イ ム ス タ ン プ を 表 示 す る た め の strftime(3) の 書 式 文 字 列 と し て 使 わ れ ま す 。 こ の 変 数 が 設 定 さ れ る と 、 ほ か の シ ェ ル の セ ッ シ ョ ン で も 使 え る よ う に タ イ ム ス タ ン プ は 履 歴 フ ァ イ ル に 書 き 込 ま れ ま す 。 タ イ ム ス タ ン プ は ほ か の 履 歴 行 と 区 別 す る た め に 履 歴 の コ メ ン ト と な り ま す 。

HOME 現 在 の ユ ー ザ の ホ ー ム デ ィ レ ク ト リ で す 。 組 み 込 み コ マ ン ド

cd の デ

フ ォ ル ト の 引 き 数 に な り ま す 。 こ の 変 数 の 値 は 、 チ ル ダ 展 開 を 実 行 す る と き に も 使 わ れ ま す 。

HOSTFILE

/etc/hosts と 同 じ フ ォ ー マ ッ ト で あ り 、 シ ェ ル が ホ ス ト 名 を 補 完 す る 必 要 が あ る と き に 読 み 込 む フ ァ イ ル の 名 前 を 示 し ま す 。 シ ェ ル の 実 行 中 で も 補 完 す る ホ ス ト 名 の リ ス ト を 変 更 で き ま す 。 こ の 変 数 が 変 更 さ れ た 次 の 機 会 に ホ ス ト 名 の 補 完 を 試 み る と き 、 bash は 新 し い フ ァ イ ル の 内 容 を 既 存 の デ ー タ ベ ー ス に 追 加 し ま す 。 HOSTFILE が 設 定 さ れ て い る が そ の 値 が 空 文 字 列 の 場 合 や 、 読 み 込 め る フ ァ イ ル の 名 前 で は な い 場 合 に は 、 bash は 補 完 可 能 な ホ ス ト 名 の リ ス ト を 取 得 す る た め に /etc/hosts を 使 用 し ま す 。 HOSTFILE が unset さ れ た 場 合 は 、 ホ ス ト 名 の リ ス ト は ク リ ア さ れ ま す 。

IFS 内 部 フ ィ ー ル ド 区 切 り 文 字

(Internal Field Separator) で す 。 展 開 を

行 っ た 後 に 単 語 を 分 割 す る 場 合 や 、 組 み 込 み コ マ ン ド の read を 使 っ た と き に 行 を 単 語 に 分 割 す る 場 合 に 使 わ れ ま す 。 デ フ ォ ル ト 値 は “<空 白 ><タ ブ ><改 行 >” で す 。

IGNOREEOF 単 独 で 入 力 さ れ た EOF 文 字 を 受 け 取 っ た と き の 対 話 シ ェ ル の 動 作 を 制 御 し ま す 。 こ の 変 数 が 設 定 さ れ て い れ ば 、 指 定 さ れ て い る 値 の 数 だ け の EOF 文 字 を 連 続 し て 行 頭 の 文 字 と し て 入 力 し な け れ ば bash は 終 了 し ま せ ん 。 こ の 変 数 に 数 値 以 外 の 値 が 設 定 さ れ て い る 場 合 や 、 空 の 値 が 設 定 さ れ て い る 場 合 に は 、 デ フ ォ ル ト 値 と し て 10 が 使 わ れ ま す 。 こ の 変 数 が 存 在 し な け れ ば 、 EOF 文 字 は シ ェ ル へ の 入 力 の 終 わ り を 示 し ま す 。
INPUTRC

readline の 起 動 フ ァ イ ル の フ ァ イ ル 名 で す 。 こ れ は デ フ ォ ル ト 値 の ~/.inputrc (後 述 の READLINE を 参 照 ) を 上 書 き し ま す 。

LANG ロ ケ ー ル カ テ ゴ リ が

LC_ で 始 ま る 変 数 に よ っ て 明 示 的 に 指 定 さ れ て い

な い 場 合 、 そ う し た カ テ ゴ リ の ロ ケ ー ル を 決 定 す る の に 使 用 さ れ ま す 。

LC_ALL こ の 変 数 は ロ ケ ー ル カ テ ゴ リ を 指 定 す る

LC_ 変 数 と LANG の 値 に 優 先

し ま す 。

LC_COLLATE こ の 変 数 は パ ス 名 展 開 の 結 果 を ソ ー ト す る と き に 使 用 さ れ る 照 合 順 序 と 、 パ ス 名 展 開 と パ タ ー ン マ ッ チ ン グ に お け る 範 囲 表 現 、 等 値 ク ラ ス 、 照 合 順 序 の 動 作 を 決 定 し ま す 。
LC_CTYPE
こ の 変 数 は 、 パ ス 名 展 開 と パ タ ー ン マ ッ チ ン グ に お け る 文 字 の 解 釈 と 文 字 ク ラ ス に 含 ま れ る 文 字 を 決 め ま す 。
LC_MESSAGES
こ の 変 数 は 、 $ の 後 に 続 く ダ ブ ル ク ォ ー ト さ れ た 文 字 列 の 翻 訳 に 使 う ロ ケ ー ル を 決 め ま す 。
LC_NUMERIC
こ の 変 数 は 数 字 の フ ォ ー マ ッ ト に 使 用 す る ロ ケ ー ル カ テ ゴ リ を 決 定 し ま す 。

LINES 組 み 込 み コ マ ン ド

select に よ っ て 、 選 択 さ れ た リ ス ト を 表 示 す る 際 の

行 数 の 決 定 に 用 い ら れ ま す 。 SIGWINCH を 受 信 す る と 自 動 的 に 設 定 さ れ ま す 。

MAIL こ の パ ラ メ ー タ に フ ァ イ ル 名 ま た は デ ィ レ ク ト リ 名 が 設 定 さ れ て お り 、 か つ 変 数

MAILPATH が 設 定 さ れ て い な け れ ば 、 bash は 指 定 さ れ た フ ァ イ ル ま た は Maildier形 式 の デ ィ レ ク ト リ へ の メ ー ル の 到 着 を ユ ー ザ に 通 知 し ま す 。
MAILCHECK

bash が メ ー ル を チ ェ ッ ク す る 頻 度 を (秒 数 で ) 指 定 し ま す 。 デ フ ォ ル ト 値 は 60 秒 で す 。 メ ー ル を チ ェ ッ ク す る 時 間 に な る と 、 シ ェ ル は プ ラ イ マ リ の プ ロ ン プ ト を 表 示 す る 前 に チ ェ ッ ク を 行 い ま す 。 こ の 変 数 が unset さ れ た 場 合 、 あ る い は こ の 変 数 に 0 以 上 の 数 値 以 外 が 代 入 さ れ た 場 合 は 、 シ ェ ル は メ ー ル の チ ェ ッ ク を 行 い ま せ ん 。

MAILPATH メ ー ル の チ ェ ッ ク に 使 う フ ァ イ ル 名 を コ ロ ン で 区 切 っ て 並 べ た リ ス ト で す 。 特 定 の フ ァ イ ル に メ ー ル が 到 着 し た と き に 出 力 さ れ る メ ッ セ ー ジ は 、 ’?’ を 使 っ て フ ァ イ ル 名 を メ ッ セ ー ジ か ら 区 切 る こ と に よ っ て 指 定 で き ま す 。 メ ッ セ ー ジ の テ キ ス ト 中 で 使 わ れ た と き は 、 $_ は 現 在 の メ ー ル フ ァ イ ル の 名 前 に 展 開 さ れ ま す 。 設 定 例 :

MAILPATH='/var/mail/bfox?"You have mail":~/shell−mail?"$_ has mail!"' こ の 変 数 の デ フ ォ ル ト 値 は bash が 与 え ま す が 、 bash が 使 う ユ ー ザ の メ ー ル フ ァ イ ル の 位 置 は シ ス テ ム 依 存 で す (/var/mail/$USER 等 )。

OPTERR 値 と し て

1 が 設 定 さ れ て い る 場 合 、 bash は 組 み 込 み コ マ ン ド

getopts (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) を 使 っ て 生 成 し た エ ラ ー メ ッ セ ー ジ を 表 示 し ま す 。 シ ェ ル が 起 動 さ れ た り 、 シ ェ ル ス ク リ プ ト が 実 行 さ れ た り す る た び に 、 OPTERR は 1 に 初 期 化 さ れ ま す 。

PATH コ マ ン ド の 検 索 パ ス で す 。 シ ェ ル が コ マ ン ド を 検 索 す る デ ィ レ ク ト リ を コ ロ ン で 区 切 っ て 並 べ た リ ス ト で す

(後 述 の コ マ ン ド の 実 行 を 参 照 )。 PATH 中 の 長 さ 0 の (空 の ) デ ィ レ ク ト リ 名 は 、 カ レ ン ト デ ィ レ ク ト リ を 示 し ま す 。 空 の デ ィ レ ク ト リ 名 は 、 2 つ の コ ロ ン を 並 べ る か 、 先 頭 や 末 尾 の コ ロ ン で 表 し ま す 。 デ フ ォ ル ト の パ ス は シ ス テ ム 依 存 で 、 bash を イ ン ス ト ー ル し た シ ス テ ム 管 理 者 が 設 定 し ま す 。 一 般 的 な 値 は ’’/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin’’ で す 。
POSIXLY_CORRECT

bash が 起 動 し た と き に こ の 環 境 変 数 が 設 定 さ れ て い る と 、 起 動 オ プ シ ョ ン −−posix を 指 定 し た と き と 同 じ よ う に 、 ど の 初 期 化 フ ァ イ ル を 読 む よ り も 前 に シ ェ ル が posix モ ー ド に な り ま す 。 シ ェ ル の 実 行 中 に こ の 変 数 が 設 定 さ れ る と 、 bashset -o posix コ マ ン ド を 実 行 し た と き と 同 じ よ う に 、 posix モ ー ド が 有 効 に な り ま す 。

PROMPT_COMMAND 設 定 さ れ て い る と 、 プ ラ イ マ リ プ ロ ン プ ト を 出 す 前 に 毎 回 、 こ の 値 が コ マ ン ド と し て 実 行 さ れ ま す 。
PROMPT_DIRTRIM

0 よ り 大 き い 値 が 設 定 さ れ る と 、 プ ロ ン プ ト 文 字 列 の エ ス ケ ー プ シ ー ケ ン ス \w\W (後 述 の プ ロ ン プ ト を 参 照 ) を 展 開 す る と き に 、 デ ィ レ ク ト リ が パ ス 名 の 最 後 か ら こ の 数 だ け 残 り ま す 。 削 ら れ た 部 分 は 省 略 記 号 に 置 き 換 え ら れ ま す 。

PS1 こ の パ ラ メ ー タ の 値 は 展 開 さ れ て プ ラ イ マ リ の プ ロ ン プ ト 文 字 列 と し て 使 わ れ ま す 。

(後 述 の プ ロ ン プ ト を 参 照 )、 デ フ ォ ル ト 値 は\s−\v\$ ” で す 。

PS2 こ の パ ラ メ ー タ の 値 は

PS1 と 同 じ よ う に 展 開 さ れ 、 セ カ ン ダ リ の プ ロ

ン プ ト 文 字 列 と し て 使 わ れ ま す 。 デ フ ォ ル ト 値 は “> ” で す 。

PS3 こ の パ ラ メ ー タ の 値 は

select コ マ ン ド (前 述 の シ ェ ル の 文 法 を 参

照 ) の プ ロ ン プ ト と し て 使 わ れ ま す 。

PS4 こ の パ ラ メ ー タ は

PS1 と 同 じ よ う に 展 開 さ れ ま す 。 こ の 値 は 実 行 ト

レ ー ス 中 に bash が 表 示 す る 各 コ マ ン ド 前 に 出 力 さ れ ま す 。 複 数 段 の 間 接 レ ベ ル (levels of indirection) を 示 す と き は 、 PS4 の 最 初 の 文 字 が 必 要 に 応 じ て 複 数 回 表 示 さ れ ま す 。 デ フ ォ ル ト 値 は “+ ” で す 。

SHELL こ の 環 境 変 数 に シ ェ ル の フ ル パ ス 名 が 保 存 さ れ て い ま す 。 シ ェ ル を 起 動 し た と き に 設 定 さ れ て い な い 場 合 は 、

bash が 現 在 の ユ ー ザ の ロ グ イ ン シ ェ ル の フ ル パ ス 名 を 代 入 し ま す 。
TIMEFORMAT
こ の パ ラ メ ー タ の 値 は 、 予 約 語 で あ る time が 先 頭 に 付 い て い る パ イ プ ラ イ ン に 対 し て 、 時 間 情 報 の 表 示 の 仕 方 を 指 定 す る フ ォ ー マ ッ ト 文 字 列 と し て 使 わ れ ま す 。 % は 、 時 間 の 値 な ど に 展 開 さ れ る エ ス ケ ー プ シ ー ケ ン ス を 示 す た め の 文 字 で す 。 エ ス ケ ー プ シ ー ケ ン ス と そ の 意 味 を 以 下 に 示 し ま す 。 た だ し 、 ブ レ ー ス ([]) は 省 略 可 能 で あ る こ と を 表 し ま す 。

%%

% 文 字 そ の も の 。

%[p][l]R

経 過 し た 秒 数 。

%[p][l]U ユ ー ザ モ ー ド で 使 わ れ た

CPU の 秒 数 。

%[p][l]S シ ス テ ム モ ー ド で 使 わ れ た

CPU の 秒 数 。

%P

CPU の パ ー セ ン テ ー ジ 。 (%U + %S) / %R で 算 出 さ れ ま す 。

p 省 略 可 能 で 、 精 度 (precision) が 何 桁 で あ る か を 指 定 し ま す 。 つ ま り 小 数 点 以 下 の 桁 数 を 指 定 し ま す 。 こ の 値 が 0 な ら ば 、 小 数 点 や 小 数 の 部 分 は 出 力 さ れ ま せ ん 。 ま た 、 小 数 点 以 下 で 指 定 で き る の は 3 桁 ま で で す 。 つ ま り 、 p の 値 が 3 よ り 大 き け れ ば 3 に 変 更 さ れ ま す 。 p を 指 定 し な け れ ば 、 こ の 値 は 3 と な り ま す 。

l は 省 略 可 能 で す が 、 指 定 す る と 、 分 を 含 み 、 MMmSS.FF と い う 形 式 の 長 い フ ォ ー マ ッ ト に な り ま す 。 小 数 を 含 む か ど う か は p の 値 に よ っ て 決 ま り ま す 。 こ の 変 数 が 設 定 さ れ て い な け れ ば 、 bash$'\nreal\t%3lR\nuser\t%3lU\nsys%3lS' と い う 値 が 指 定 さ れ て い る か の よ う に 動 作 し ま す 。 こ の 値 が 空 文 字 列 な ら ば 、 時 間 の 情 報 は 表 示 さ れ ま せ ん 。 フ ォ ー マ ッ ト 文 字 列 の 表 示 の 際 に は 、 末 尾 に 改 行 文 字 が 追 加 さ れ ま す 。

TMOUT

0 よ り 大 き い 値 を 設 定 す る と 、 TMOUT の 値 が 組 み 込 み コ マ ン ド read の デ フ ォ ル ト の タ イ ム ア ウ ト 値 と な り ま す 。 select コ マ ン ド は 、 端 末 か ら の 入 力 の 際 に TMOUT 秒 入 力 が な い と 終 了 し ま す 。 対 話 シ ェ ル で は こ の 値 は 、 プ ラ イ マ リ の プ ロ ン プ ト を 出 し て か ら 入 力 を 待 つ 秒 数 と し て 解 釈 さ れ ま す こ の 秒 数 待 っ て 入 力 が 来 な い と 、 bash は 終 了 し ま す

TMPDIR

設 定 す る と 、 値 を bash が シ ェ ル 用 に テ ン ポ ラ リ フ ァ イ ル を 作 る デ ィ レ ク ト リ 名 と し て 使 い ま す 。

auto_resume こ の 変 数 は 、 ユ ー ザ が ジ ョ ブ 制 御 を す る と き の 方 法 を 変 更 し ま す 。 こ の 変 数 を 設 定 し た 場 合 、 1 語 か ら な る リ ダ イ レ ク ト な し の 単 純 な コ マ ン ド を 入 力 す る と 、 停 止 中 の ジ ョ ブ の 実 行 再 開 候 補 と し て 扱 わ れ ま す 。 曖 昧 な 指 定 は 許 さ れ ず 、 入 力 さ れ た 文 字 列 で 始 ま る ジ ョ ブ が 複 数 あ る 場 合 に は 、 最 後 に ア ク セ ス さ れ た も の が 選 ば れ ま す 。 停 止 中 の ジ ョ ブ の 名 前 と は 、 コ マ ン ド を 起 動 す る 際 に 使 っ た コ マ ン ド ラ イ ン の こ と で す 。 こ の 変 数 の 値 に exact が 設 定 さ れ て い る 場 合 、 与 え ら れ た 文 字 列 は 停 止 中 の ジ ョ ブ の 名 前 に 正 確 に マ ッ チ し な け れ ば な り ま せ ん 。 substring が 設 定 さ れ て い る 場 合 は 、 与 え ら れ た 文 字 列 は 停 止 中 の ジ ョ ブ の 名 前 の 部 分 文 字 列 に マ ッ チ す る 必 要 が あ り ま す 。 substring と い う 値 は 、 ジ ョ ブ 識 別 子 の %? に 似 た 機 能 を 持 っ て い ま す (後 述 の ジ ョ ブ 制 御 を 参 照 )。 こ れ 以 外 の 値 が 設 定 さ れ て い る 場 合 、 与 え ら れ た 文 字 列 は 停 止 中 の ジ ョ ブ の 名 前 の 先 頭 部 分 で な け れ ば な り ま せ ん 。 こ れ は ジ ョ ブ 識 別 子 の %string と 似 た 機 能 を 持 っ て い ま す 。
histchars

2 文 字 ま た は 3 文 字 で 、 履 歴 の 展 開 と ト ー ク ン 分 割 (後 述 の 履 歴 の 展 開 を 参 照 ) を 制 御 し ま す 。 最 初 の 文 字 は 履 歴 展 開 (history expansion) 文 字 で あ り 、 履 歴 展 開 の 先 頭 を 示 す 文 字 で す 。 通 常 、 こ れ は ’!’ で す 。 2 番 目 の 文 字 は 簡 易 置 換 (quick substitution) 文 字 で あ り 、 直 前 に 入 力 し た コ マ ン ド の 文 字 列 を 別 の 文 字 列 に 置 き 換 え て 再 実 行 す る た め の 省 略 表 現 と し て 使 い ま す 。 デ フ ォ ル ト 値 は ’^’ で す 。 3 番 目 の 文 字 は 省 略 可 能 で す 。 単 語 の 先 頭 で こ の 文 字 が 見 つ か る と 、 行 の 残 り の 部 分 が コ メ ン ト と な る よ う な 文 字 を 指 定 し ま す 。 こ れ は 通 常 は ’#’ で す 。 履 歴 コ メ ン ト 文 字 が あ る と 、 そ の 行 の 残 り の 単 語 に 対 す る 履 歴 置 換 は ス キ ッ プ さ れ ま す 。 こ の 文 字 が あ る か ら と い っ て 、 必 ず し も シ ェ ル の パ ー ザ が 行 の 残 り の 部 分 を コ メ ン ト と し て 扱 う わ け で は あ り ま せ ん 。 配 列

bash は 1 次 元 の イ ン デ ッ ク ス に よ る 配 列 と 連 想 配 列 の 変 数 を 扱 う こ と が で き ま す 。 全 て の 変 数 は 配 列 と し て 使 用 で き ま す 。 declare 組 み 込 み コ マ ン ド を 使 え ば 、 明 示 的 に 配 列 を 宣 言 で き ま す 。 配 列 の サ イ ズ の 上 限 は あ り ま せ ん し 、 メ ン バ の イ ン デ ッ ク ス 付 け や 代 入 を 連 続 的 に し な け れ ば な ら な い と い う 条 件 も あ り ま せ ん 。 イ ン デ ッ ク ス に よ る 配 列 は 整 数 (算 術 式 を 含 む ) で 参 照 し ま す 。 イ ン デ ッ ク ス は 0 か ら 始 ま り ま す 。 連 想 配 列 は 任 意 の 文 字 列 で 参 照 し ま す 。 変 数 の 代 入 の 際 に name[subscript]=value と い う 記 法 が 使 わ れ た 場 合 、 配 列 は 自 動 的 に 生 成 さ れ ま す 。 subscript は 算 術 式 と し て 扱 わ れ ま す が 、 こ の 式 は 評 価 す る と 数 値 に な る も の で な け れ ば な り ま せ ん 。 subscript を 評 価 す る と 0 未 満 の 数 に な る 場 合 、 最 大 の イ ン デ ッ ク ス +1 か ら の オ フ セ ッ ト と し て 扱 わ れ ま す 。 つ ま り 、 subscript が −1 の と き は 、 配 列 の 最 後 の 要 素 を 参 照 し ま す 。 イ ン デ ッ ク ス に よ る 配 列 を 明 示 的 に 宣 言 す る に は 、 declare −a name を 使 い ま す (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。 declare −a name[subscript] も 許 さ れ ま す 。 こ の と き subscript は 無 視 さ れ ま す 。 連 想 配 列 は declare −A name で 作 り ま す 。 組 み 込 み コ マ ン ド の declarereadonly を 使 う と 、 配 列 変 数 に 対 し て 属 性 を 設 定 で き ま す 。 ど の 属 性 も 配 列 の メ ン バ 全 て に 対 し て 適 用 さ れ ま す 。 配 列 の 代 入 は name=(value1 ... valuen) と い う 形 式 の 複 合 代 入 (compound assignment) を 用 い て 行 い ま す 。 こ こ で そ れ ぞ れ の value の 形 式 は [subscript]=string で す 。 イ ン デ ッ ク ス に よ る 配 列 で は 、 ブ ラ ケ ッ ト ([]) と subscript は 省 略 で き ま す 。 ブ ラ ケ ッ ト と subscript を 省 略 し な か っ た 場 合 、 そ の イ ン デ ッ ク ス に 対 し て 代 入 が 行 わ れ ま す 。 省 略 し た 場 合 に は 、 代 入 さ れ る 要 素 の イ ン デ ッ ク ス は 、 そ の 文 の 中 で 直 前 に 代 入 さ れ た イ ン デ ッ ク ス に 1 を 加 え た も の に な り ま す 。 イ ン デ ッ ク ス は 0 か ら 始 ま り ま す 。 連 想 配 列 へ の 代 入 で は 、 subscript は 省 略 で き ま せ ん 。 こ の 記 法 は 組 み 込 み コ マ ン ド declare で も 使 え ま す 。 個 別 の 配 列 要 素 に 対 す る 代 入 は 、 先 に 説 明 し た name[subscript]=value の 記 法 を 使 っ て 行 い ま す 。 配 列 の 任 意 の 要 素 は 、 ${name[subscript]} を 使 っ て 参 照 で き ま す 。 パ ス 名 展 開 と の 衝 突 を 避 け る た め に ブ レ ー ス が 必 要 で す 。 subscript@* な ら ば 、 配 列 の 参 照 は name の 全 て の 要 素 に 展 開 さ れ ま す 。 こ の 2 つ の 添 字 が 異 な る の は 、 単 語 が ダ ブ ル ク ォ ー ト の 内 部 に あ る 場 合 だ け で す 。 単 語 が ダ ブ ル ク ォ ー ト さ れ て い れ ば 、 ${name[*]} は 1 つ の 単 語 に 展 開 さ れ ま す 。 こ の 単 語 は 、 配 列 の 各 メ ン バ の 値 を 特 殊 変 数 IFS の 最 初 の 値 で 区 切 っ て 並 べ た も の で す 。 一 方 、 ${name[@]} は 、 name の 各 要 素 を 別 々 の 単 語 に 展 開 し ま す 。 配 列 の メ ン バ が 全 く な い と き は 、 ${name[@]} は 空 の 単 語 に 展 開 さ れ ま す 。 単 語 の 中 で ダ ブ ル ク ォ ー ト の 展 開 が 行 わ れ る と き に は 、 元 の 単 語 の ダ ブ ル ク ォ ー ト よ り 前 の 部 分 の 後 に 最 初 の パ ラ メ ー タ の 展 開 結 果 が つ な が り 、 最 後 の パ ラ メ ー タ の 展 開 結 果 の 後 に 元 の 単 語 の ダ ブ ル ク ォ ー ト よ り 後 の 部 分 が つ な が り ま す 。 こ れ は 特 殊 パ ラ メ ー タ *@ の 展 開 に 似 て い ま す (前 述 の 特 殊 パ ラ メ ー タ を 参 照 )。 ${#name[subscript]} は ${name[subscript]} の 長 さ に 展 開 さ れ ま す 。 subscript* ま た は @ の 場 合 は 、 配 列 中 の 要 素 数 に 展 開 さ れ ま す 。 添 字 な し で 配 列 変 数 を 参 照 す る と 、 0 番 目 の 要 素 を 参 照 し た こ と に な り ま す 。 配 列 変 数 は subscript に 対 し て 値 が 代 入 さ れ て い れ ば 設 定 さ れ て い る と み な さ れ ま す 。 空 文 字 列 は 有 効 な 値 で す 。 組 み 込 み コ マ ン ド の unset は 配 列 の 削 除 に 使 わ れ ま す 。 unset name[subscript] と す る と 、 イ ン デ ッ ク ス が subscript で あ る 配 列 の 要 素 が 削 除 さ れ ま す 。 パ ス 名 展 開 に よ る 意 図 し な い 副 作 用 に 注 意 し て く だ さ い 。 unset name (name は 配 列 ) ま た は unset name[subscript] (subscript* ま た は @) と す る と 、 配 列 全 体 が 削 除 さ れ ま す 。 組 み 込 み コ マ ン ド の declare, local, readonly い ず れ に お い て も 、 −a オ プ シ ョ ン で イ ン デ ッ ク ス に よ る 配 列 を 指 定 で き ま す 。 −A ま た 、 オ プ シ ョ ン で 連 想 配 列 を 指 定 で き ま す 。 両 方 が 指 定 さ れ た と き に は 、 −A が 優 先 し ま す 。 組 み 込 み コ マ ン ド read で は 、 −a オ プ シ ョ ン を 使 え ば 標 準 入 力 か ら 読 み 込 ん だ 単 語 の リ ス ト を 配 列 に 代 入 で き ま す 。 組 み 込 み コ マ ン ド setdeclare で は 、 別 の 変 数 へ の 代 入 に 再 利 用 で き る よ う な 形 で 配 列 の 値 を 表 示 し ま す 。

展 開

展 開 は コ マ ン ド ラ イ ン が 単 語 へ 分 割 さ れ た 後 に (コ マ ン ド ラ イ ン 上 で ) 行 わ れ ま す 。 行 わ れ る 展 開 は 7 種 類 あ り ま す : ブ レ ー ス 展 開 (brace expansion), チ ル ダ 展 開 (tilde expansion), パ ラ メ ー タ と 変 数 の 展 開 (parameter and variable expansion), コ マ ン ド 置 換 (command substitution), 算 術 式 展 開 (arithmetic expansion), 単 語 の 分 割 (word splitting), パ ス 名 展 開 (pathname expansion)。 展 開 の 順 序 は 次 の よ う に な り ま す : ブ レ ー ス 展 開 、 チ ル ダ 展 開 、 パ ラ メ ー タ ・ 変 数 ・ 算 術 式 展 開 、 コ マ ン ド 置 換 (左 か ら 右 へ )、 単 語 分 割 、 パ ス 名 展 開 。 こ れ ら に 加 え て プ ロ セ ス 置 換 (process substitution) を サ ポ ー ト で き る シ ス テ ム も あ り ま す 。 展 開 し た 部 分 の 単 語 の 数 が 変 化 す る こ と が あ る の は 、 ブ レ ー ス 展 開 、 単 語 の 分 割 、 パ ス 名 展 開 だ け で す 。 ほ か の 展 開 で は 、 1 つ の 単 語 は 1 つ の 単 語 に 展 開 さ れ ま す 。 こ の 規 則 の 唯 一 の 例 外 は 先 に 説 明 し た "$@" と "${name[@]}" の 展 開 ( パ ラ メ ー タ を 参 照 ) だ け で す 。 ブ レ ー ス 展 開 ブ レ ー ス 展 開 (brace expansion) を 使 う と 、 任 意 の 文 字 列 を 生 成 で き ま す 。 こ の 仕 組 み は パ ス 名 展 開 に 似 て い ま す が 、 生 成 さ れ た フ ァ イ ル 名 が 実 在 す る 必 要 は あ り ま せ ん 。 ブ レ ー ス 展 開 さ れ る パ タ ー ン は 、 前 置 部 分 (preamble: 省 略 可 能 )、 対 に な る ブ レ ー ス で 囲 ん だ コ ン マ 区 切 り の 文 字 列 ま た は シ ー ケ ン ス 式 、 後 置 部 分 (postscript: 省 略 可 能 ) を 順 に 並 べ た も の で す 。 前 置 部 分 は ブ レ ー ス 内 に あ る 文 字 列 そ れ ぞ れ の 先 頭 部 分 に 追 加 さ れ 、 後 置 部 分 は 左 か ら 右 に 順 に 展 開 さ れ て 得 ら れ た そ れ ぞ れ の 文 字 列 の 末 尾 に 追 加 さ れ ま す 。 ブ レ ー ス 展 開 は 入 れ 子 に で き ま す 。 展 開 し て 得 ら れ た 文 字 列 は ソ ー ト さ れ ず 、 左 か ら 右 へ の 順 番 が そ の ま ま 残 り ま す 。 例 え ば a{d,c,b}e は ’ade ace abe’ と 展 開 さ れ ま す 。 シ ー ケ ン ス 式 は {x..y[..incr]} の 形 に な り ま す 。 xy は 整 数 ま た は 1 つ の 文 字 で 、 省 略 可 能 な incr は 増 減 分 の 整 数 で す 。 整 数 が 与 え ら れ る と 、 xy の 間 の 両 端 を 含 む 数 を 全 て 列 挙 し た 形 に 展 開 さ れ ま す 。 与 る 整 数 の 前 に 0 を 付 け る と 、 全 て の 項 が 同 じ 幅 に 揃 え ら れ ま す 。 つ ま り 、 xy の ど ち ら か が 0 で 始 ま る 場 合 、 生 成 さ れ る 全 て の 項 が 同 じ 文 字 数 に な る よ う に 、 必 要 で あ れ ば 前 に 0 が 付 け ら れ ま す 。 文 字 が 与 え ら れ る と 辞 書 順 で xy の 間 の 両 端 を 含 む 文 字 を 全 て 列 挙 し た 形 に 展 開 さ れ ま す 。 xy は 同 じ 型 で あ る 必 要 が あ り ま す 。 incr が 与 え ら れ る と 、 そ の 値 が 各 項 の 間 の 差 と な り ま す 。 incr の デ フ ォ ル ト は 、 1 ま た は −1 の う ち 適 切 な 方 で す 。 ブ レ ー ス 展 開 は ほ か の ど の 展 開 よ り も 前 に 実 行 さ れ ま す 。 ま た 、 ほ か の 展 開 に お い て 特 殊 な 意 味 を 持 つ 文 字 も そ の ま ま 結 果 に 残 り ま す 。 つ ま り 、 厳 密 に テ キ ス ト 操 作 だ け を 行 い ま す 。 bash は 、 展 開 の 文 脈 や ブ レ ー ス の 間 の テ キ ス ト に 対 し て 文 法 的 な 解 釈 を 適 用 す る こ と は 一 切 あ り ま せ ん 。 正 し い 形 の ブ レ ー ス 展 開 に は 、 ク ォ ー ト さ れ て い な い 開 き ブ レ ー ス と 閉 じ ブ レ ー ス 、 そ し て シ ー ケ ン ス 式 か 少 な く と も 1 つ の ク ォ ー ト さ れ て い な い コ ン マ が 含 ま れ て い な け れ ば な り ま せ ん 。 正 し い 形 で な い ブ レ ー ス 展 開 は 全 て 、 変 更 さ れ な い で そ の ま ま 残 り ま す 。 {, を バ ッ ク ス ラ ッ シ ュ で ク ォ ー ト す れ ば 、 ブ レ ー ス 展 開 の 一 部 と 解 釈 さ れ な い よ う に で き ま す 。 パ ラ メ ー タ 展 開 と の 衝 突 を 避 け る た め 、 文 字 列 ${ は ブ レ ー ス 展 開 の 対 象 と は 解 釈 さ れ ま せ ん 。 こ の 仕 組 み は 、 生 成 さ れ る 文 字 列 の 共 通 先 頭 部 分 が 上 記 の 例 よ り 長 い 場 合 に 、 短 縮 表 現 と し て よ く 使 用 さ れ ま す :

mkdir /usr/local/src/bash/{old,new,dist,bugs} ま た は
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}} ブ レ ー ス 展 開 の 導 入 に よ っ て 、 伝 統 的 な sh と は 少 し 非 互 換 に な っ た 部 分 が あ り ま す 。 sh は 単 語 の 一 部 と し て 開 き ブ レ ー ス や 閉 じ ブ レ ー ス が 現 わ れ て も 特 別 扱 い は せ ず 、 そ の ま ま 出 力 に 残 し ま す 。 bash は ブ レ ー ス 展 開 の 結 果 と し て 単 語 か ら ブ レ ー ス を 取 り 除 き ま す 。 例 え ば shfile{1,2} の よ う に 入 力 さ れ た 単 語 は そ の ま ま の 形 で 出 力 さ れ ま す が 、 bash で は こ の 同 じ 単 語 は 展 開 さ れ て file1 file2 の よ う に 出 力 さ れ ま す 。 厳 密 に sh と 互 換 に し た け れ ば 、 bash+B オ プ シ ョ ン を 付 け て 起 動 す る か 、 set コ マ ン ド に +B オ プ シ ョ ン を 与 え て ブ レ ー ス 展 開 を 無 効 に し て く だ さ い (後 述 す る シ ェ ル 組 み 込 み コ マ ン ド を 参 照 )。 チ ル ダ 展 開 ク ォ ー ト さ れ て い な い チ ル ダ (’~’) で 単 語 が 始 ま っ た 場 合 、 ク ォ ー ト さ れ て い な い ス ラ ッ シ ュ よ り も 前 に あ る 文 字 全 て (ク ォ ー ト さ れ て い な い ス ラ ッ シ ュ が 無 け れ ば 全 て の 文 字 ) は チ ル ダ プ レ フ ィ ッ ク ス (tilde−prefix) と 解 釈 さ れ ま す 。 ク ォ ー ト さ れ て い る 文 字 が チ ル ダ プ レ フ ィ ッ ク ス 中 に 無 け れ ば 、 チ ル ダ プ レ フ ィ ッ ク ス 中 の チ ル ダ 以 降 の 文 字 は 、 ロ グ イ ン 名 (login name) に な る か も し れ な い 文 字 列 と し て 扱 わ れ ま す 。 こ の ロ グ イ ン 名 が 空 文 字 列 な ら ば 、 チ ル ダ は シ ェ ル パ ラ メ ー タ HOME の 値 に 置 き 換 え ら れ ま す 。 HOME が 設 定 さ れ て い な い 場 合 は 、 代 わ り に シ ェ ル を 実 行 し て い る ユ ー ザ の ホ ー ム デ ィ レ ク ト リ に 置 き 換 え ら れ ま す 。 ロ グ イ ン 名 が 空 で な け れ ば 、 チ ル ダ プ レ フ ィ ッ ク ス は 指 定 さ れ た ロ グ イ ン 名 に 対 応 す る ホ ー ム デ ィ レ ク ト リ に 置 き 換 え ら れ ま す 。 チ ル ダ プ レ フ ィ ッ ク ス が ’~+’ な ら ば 、 チ ル ダ プ レ フ ィ ッ ク ス は シ ェ ル 変 数 PWD の 値 に 置 き 換 え ら れ ま す 。 チ ル ダ プ レ フ ィ ッ ク ス が ’~−’ な ら ば 、 シ ェ ル 変 数 OLDPWD の 値 に 置 き 換 え ら れ ま す (値 が 設 定 さ れ て い れ ば )。 チ ル ダ プ レ フ ィ ッ ク ス 中 の チ ル ダ よ り 後 の 文 字 が 数 値 N で あ れ ば (数 値 の 前 に ’+’ や ’−’ を 置 く こ と も で き ま す )、 チ ル ダ プ レ フ ィ ッ ク ス は デ ィ レ ク ト リ ス タ ッ ク 内 の 対 応 す る 要 素 に 置 換 さ れ ま す 。 置 換 さ れ る 要 素 は 、 チ ル ダ プ レ フ ィ ッ ク ス を 引 き 数 と し て 組 み 込 み コ マ ン ド dirs を 実 行 し た と き に 表 示 さ れ る も の で す 。 チ ル ダ プ レ フ ィ ッ ク ス に お け る チ ル ダ 以 降 の 文 字 が 、 先 行 す る ’+’ や ’−’ の な い 数 値 で あ る 場 合 は 、 ’+’ で あ る と み な さ れ ま す 。 ロ グ イ ン 名 が 有 効 で な い 場 合 や 、 チ ル ダ 展 開 が 失 敗 し た 場 合 に は 、 単 語 は 置 き 換 え ら れ ま せ ん 。 全 て の 変 数 代 入 に お い て 、 := の 直 後 に ク ォ ー ト さ れ て い な い チ ル ダ プ レ フ ィ ッ ク ス が な い か チ ェ ッ ク が 行 わ れ ま す 。 も し 見 つ か っ た 場 合 に は こ れ ら も チ ル ダ 展 開 さ れ ま す 。 し た が っ て 、 PATH, MAILPATH, CDPATH へ の 代 入 に チ ル ダ を 含 む フ ァ イ ル 名 を 使 え ば 、 シ ェ ル は 展 開 さ れ た 値 を 代 入 し ま す 。 パ ラ メ ー タ の 展 開

$’ 文 字 が あ る と 、 パ ラ メ ー タ 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 が 行 わ れ ま す 。 展 開 さ れ る パ ラ メ ー タ 名 や シ ン ボ ル は 、 ブ レ ー ス で 括 る こ と も で き ま す 。 ブ レ ー ス は 省 略 可 能 で す が 、 変 数 の 直 後 に 変 数 名 の 一 部 と 解 釈 で き る 文 字 が 置 か れ た 場 合 に 、 そ の 文 字 と 共 に 変 数 が 展 開 さ れ て し ま う の を 防 ぐ た め に 用 意 さ れ て い ま す 。 ブ レ ー ス を 使 っ た 場 合 、 対 に な る の は 最 初 に 表 れ る ’}’ で す 。 た だ し バ ッ ク ス ラ ッ シ ュ で エ ス ケ ー プ さ れ て い る も の や ク ォ ー ト さ れ て い る 文 字 列 中 の も の は 含 ま れ ま せ ん し 、 ブ レ ー ス の 内 側 に あ る 算 術 式 展 開 や コ マ ン ド 置 換 、 パ ラ メ ー タ 展 開 に 入 っ て い る も の も 含 ま れ ま せ ん 。
${parameter}

parameter の 値 に 置 換 さ れ ま す 。 ブ レ ー ス が 必 要 に な る の は 、 parameter が 2 桁 以 上 の 数 字 を 持 つ 位 置 パ ラ メ ー タ の 場 合 や 、 parameter の 直 後 の 文 字 を 名 前 の 一 部 と し て 解 釈 さ せ た く な い 場 合 で す 。

parameter の 最 初 の 文 字 が 感 嘆 符 な ら ば 、 変 数 間 接 展 開 が 行 わ れ ま す 。 bash は 残 り の parameter か ら な る 変 数 の 値 を 変 数 の 名 前 と 見 な し ま す 。 そ し て そ こ で 得 ら れ た 名 前 の 変 数 を 展 開 し た 値 を 、 置 換 処 理 の 続 き で 使 い ま す 。 こ れ が 間 接 展 開 で す 。 た だ し ${!prefix*} や ${!name[@]} の 展 開 は 例 外 で す 。 こ れ は 以 下 で 説 明 し ま す 。 間 接 展 開 を 表 す に は 、 感 嘆 符 は 左 ブ レ ー ス の 直 後 に 続 け る 必 要 が あ り ま す 。 以 下 に 示 す そ れ ぞ れ の 場 合 、 word に 対 し て チ ル ダ 展 開 、 パ ラ メ ー タ 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 が 行 わ れ ま す 。 部 分 文 字 列 展 開 以 外 の 場 合 、 以 下 の 形 式 で 、 bash は パ ラ メ ー タ が 設 定 さ れ て い る か 、 空 で は な い か を 調 べ ま す 。 コ ロ ン を 省 略 し た 場 合 に は 設 定 さ れ て い る か ど う か の み を 調 べ ま す 。
${parameter:−word} デ フ ォ ル ト の 値 を 使 い ま すparameter が 設 定 さ れ て い な い か 空 文 字 列 で あ れ ば 、 word を 展 開 し た も の に 置 換 さ れ ま す 。 そ う で な け れ ば 、 parameter の 値 に 置 換 さ れ ま す 。
${parameter:=word} デ フ ォ ル ト の 値 を 代 入 し ま すparameter が 設 定 さ れ て い な い か 空 文 字 列 で あ れ ば 、 word を 展 開 し た も の が parameter に 代 入 さ れ ま す 。 そ れ か ら parameter の 値 へ の 置 換 が 行 わ れ ま す 。 位 置 パ ラ メ ー タ や 特 殊 パ ラ メ ー タ へ の 代 入 を こ の よ う に 行 う こ と は で き ま せ ん 。
${parameter:?word} 空 文 字 列 ま た は 設 定 さ れ て い な い 場 合 に エ ラ ー を 表 示 し ま すparameter が 空 文 字 列 ま た は 設 定 さ れ て い な い 場 合 、 word を 展 開 し た も の (word が な け れ ば パ ラ メ ー タ が 空 文 字 列 ま た は 設 定 さ れ て い な い こ と を 示 す メ ッ セ ー ジ ) が 標 準 エ ラ ー 出 力 に 出 力 さ れ ま す 。 シ ェ ル が 対 話 的 で な け れ ば 、 シ ェ ル は 終 了 し ま す 。 パ ラ メ ー タ に 空 文 字 列 以 外 が 設 定 さ れ て い れ ば 、 parameter の 値 へ の 置 換 が 行 わ れ ま す 。
${parameter:+word} 別 の 値 を 使 用 し ま すparameter が 空 文 字 列 ま た は 設 定 さ れ て い な け れ ば 、 空 文 字 列 に 置 換 さ れ ま す 。 そ う で な け れ ば word を 展 開 し た も の に 置 換 さ れ ま す 。
${parameter:offset}
${parameter:offset:length} 部 分 文 字 列 展 開parameter を 展 開 し た も の か ら 最 大 length 文 字 を 取 り 出 し ま す 。 先 頭 の 文 字 は offset で 指 定 し ま す 。 length を 省 略 す る と 、 offset で 指 定 し た 文 字 を 先 頭 に し て 、 parameter の 残 り 全 部 が 含 ま れ る 部 分 文 字 列 に 展 開 し ま す 。 lengthoffset は 算 術 式 で す (後 述 の 算 術 式 評 価 を 参 照 )。 offset を 評 価 す る と 0 未 満 の 数 に な る 場 合 、 こ の 値 は parameter の 値 の 末 尾 か ら の オ フ セ ッ ト と し て 使 わ れ ま す 。 length を 評 価 す る と 0 未 満 の 数 に な る 場 合 、 parameter@ で は な く 、 配 列 で も 連 想 配 列 で も な け れ ば 、 こ の 値 は 文 字 数 で は な く parameter の 値 の 末 尾 か ら の オ フ セ ッ ト と し て 使 わ れ 、 展 開 結 果 は 2 つ の オ フ セ ッ ト の 間 の 部 分 文 字 列 と な り ま す 。 parameter@ な ら ば 、 結 果 は offset か ら 始 ま る length 個 の 位 置 パ ラ メ ー タ に な り ま す 。 parameter が @ ま た は * の イ ン デ ッ ク ス が 付 い て い る 配 列 名 な ら ば 、 結 果 は 配 列 の ${parameter[offset]} を 先 頭 と す る 要 素 length 個 と な り ま す 。 負 の offset は 、 指 定 さ れ た 配 列 の 最 大 の イ ン デ ッ ク ス + 1 か ら の 相 対 値 と 解 釈 さ れ ま す 。 連 想 配 列 に 部 分 文 字 列 展 開 し た 場 合 の 結 果 は 決 め ら れ て い ま せ ん 。 負 の オ フ セ ッ ト を 指 定 す る と き に は 、 :− 式 と 混 同 さ れ な い よ う 、 1 つ 以 上 の 空 白 で コ ロ ン と 離 す 必 要 が あ る こ と に 注 意 し て く だ さ い 。 位 置 パ ラ メ ー タ を 使 う 場 合 以 外 は 、 部 分 文 字 列 の イ ン デ ッ ク ス は 0 か ら 始 ま り ま す 。 位 置 パ ラ メ ー タ の 場 合 に は 、 イ ン デ ッ ク ス は 1 か ら 始 ま り ま す 。 位 置 パ ラ メ ー タ が 使 わ れ て offset が 0 の 場 合 、 $0 の 値 が 先 頭 に 置 か れ ま す 。
${!prefix*}
${!prefix@} 前 方 一 致 す る 変 数 名prefix で 始 ま る 全 て の 変 数 の 名 前 に 展 開 し て 、 IFS 特 殊 変 数 の 最 初 の 文 字 に よ っ て 区 切 り ま す 。 ダ ブ ル ク ォ ー ト の 中 で @ が 使 わ れ た 場 合 、 そ れ ぞ れ の 変 数 の 名 前 は 別 々 の 単 語 に 展 開 さ れ ま す 。
${!name[@]}
${!name[*]} 配 列 の キ ー の リ ス トname が 配 列 変 数 で あ れ ば 、 配 列 name の イ ン デ ッ ク ス (キ ー ) の リ ス ト に 展 開 さ れ ま す 。 name が 配 列 で な い 場 合 は 、 name が 設 定 さ れ て い れ ば 0 に 、 そ う で な け れ ば 空 に 展 開 さ れ ま す 。 ダ ブ ル ク ォ ー ト の 中 で @ が 使 わ れ た 場 合 、 そ れ ぞ れ の キ ー は 別 々 の 単 語 に 展 開 さ れ ま す 。
${#parameter} パ ラ メ ー タ の 長 さparameter の 値 に 含 ま れ る 文 字 数 に 置 換 さ れ ま す 。 parameter* ま た は @ な ら ば 、 位 置 パ ラ メ ー タ の 数 に 置 換 さ れ ま す 。 parameter* ま た は @ が 添 字 に な っ て い る 配 列 名 な ら ば 、 配 列 中 の 要 素 数 に 置 換 さ れ ま す 。
${parameter#word}
${parameter##word} パ タ ー ン に 前 方 一 致 し た 部 分 を 取 り 除 くword が 展 開 さ れ 、 パ ス 名 展 開 の 場 合 と 同 じ よ う な パ タ ー ン を 作 り ま す 。 こ の パ タ ー ン が parameter の 値 の 先 頭 部 分 と マ ッ チ す る 場 合 、 展 開 し て 得 ら れ る 値 は parameter を 展 開 し た 値 か ら 最 短 一 致 パ タ ー ン (“#”の 場 合 ) ま た は 最 長 一 致 パ タ ー ン (“##” の 場 合 ) を 取 り 除 い た も の に な り ま す 。 parameter@ ま た は * で あ る 場 合 、 パ タ ー ン を 削 除 す る 操 作 は 全 て の 位 置 パ ラ メ ー タ に 順 番 に 適 用 さ れ 、 展 開 結 果 は リ ス ト と し て 得 ら れ ま す 。 parameter@ ま た は * が 添 字 に な っ て い る 配 列 変 数 で あ る 場 合 、 パ タ ー ン を 削 除 す る 操 作 は 配 列 の 全 て の 要 素 に 順 番 に 適 用 さ れ 、 展 開 結 果 は リ ス ト と し て 得 ら れ ま す 。
${parameter%word}
${parameter%%word} パ タ ー ン に 後 方 一 致 し た 部 分 を 取 り 除 くword が 展 開 さ れ 、 パ ス 名 展 開 の 場 合 と 同 じ よ う な パ タ ー ン を 作 り ま す 。 こ の パ タ ー ン が parameter を 展 開 し た 値 の 末 尾 の 部 分 と マ ッ チ す る 場 合 、 展 開 結 果 は parameter を 展 開 し た 値 か ら 最 短 一 致 パ タ ー ン (“%” の 場 合 ) ま た は 最 長 一 致 パ タ ー ン (“%%” の 場 合 ) を 取 り 除 い た も の に な り ま す 。 parameter@ ま た は * で あ る 場 合 、 パ タ ー ン を 削 除 す る 操 作 は 全 て の 位 置 パ ラ メ ー タ に 順 番 に 適 用 さ れ 、 展 開 結 果 は リ ス ト と し て 得 ら れ ま す 。 parameter@ ま た は * が 添 字 に な っ て い る 配 列 変 数 で あ る 場 合 、 パ タ ー ン を 削 除 す る 操 作 は 配 列 の 全 て の 要 素 に 順 番 に 適 用 さ れ 、 展 開 結 果 は リ ス ト と し て 得 ら れ ま す 。
${parameter/pattern/string} パ タ ー ン の 置 換pattern が 展 開 さ れ 、 パ ス 名 展 開 の 場 合 と 同 じ よ う な パ タ ー ン を 作 り ま す 。 parameter の 展 開 が 行 わ れ 、 そ の 値 の う ち pattern に 最 長 一 致 す る 部 分 が string に 置 換 さ れ ま す 。 pattern/ で 始 ま る 場 合 に は 、 pattern に マ ッ チ し た 部 分 は 全 て string に 置 換 さ れ ま す 。 そ う で な い 場 合 に は 、 最 初 に マ ッ チ し た 部 分 だ け が 置 換 さ れ ま す 。 pattern# で 始 ま る 場 合 に は 、 パ タ ー ン は parameter を 展 開 し た 値 の 先 頭 に マ ッ チ し な け れ ば な り ま せ ん 。 pattern% で 始 ま る 場 合 に は 、 パ タ ー ン は parameter を 展 開 し た 値 の 末 尾 に マ ッ チ し な け れ ば な り ま せ ん 。 string が 空 の 場 合 に は pattern に マ ッ チ し た 部 分 は 削 除 さ れ ま す 。 ま た こ の 場 合 に は 、 pattern の 後 に 続 く / は 省 略 可 能 で す 。 parameter@ ま た は * で あ る 場 合 、 置 換 操 作 は 全 て の 位 置 パ ラ メ ー タ に 順 番 に 適 用 さ れ 、 展 開 結 果 は リ ス ト と し て 得 ら れ ま す 。 parameter@ ま た は * が 添 字 に な っ て い る 配 列 変 数 で あ る 場 合 、 置 換 操 作 は 配 列 の 全 て の 要 素 に 順 番 に 適 用 さ れ 、 展 開 結 果 は リ ス ト と し て 得 ら れ ま す 。
${parameter^pattern}
${parameter^^pattern}
${parameter,pattern}
${parameter,,pattern} 大 文 字 小 文 字 の 変 換parameter に 含 ま れ る ア ル フ ァ ベ ッ ト の 大 文 字 小 文 字 を 変 換 し ま す 。 pattern が 展 開 さ れ 、 パ ス 名 展 開 の 場 合 と 同 じ よ う な パ タ ー ン を 作 り ま す 。 ^ 演 算 子 は pattern に マ ッ チ し た 小 文 字 を 大 文 字 に 変 換 し ま す 。 , 演 算 子 は pattern に マ ッ チ し た 大 文 字 を 小 文 字 に 変 換 し ま す 。 ^^ 演 算 子 と ,, 演 算 子 は 、 マ ッ チ し た 全 て の 文 字 を 変 換 し ま す 。 ^ 演 算 子 と , 演 算 子 の 場 合 は 、 マ ッ チ し た 最 初 の 文 字 だ け 変 換 し ま す 。 pattern を 省 略 し た 場 合 、 ? を 指 定 し た も の と し て 扱 わ れ 、 全 て の 文 字 に マ ッ チ し ま す 。 parameter@ ま た は * で あ る 場 合 、 大 文 字 小 文 字 の 変 換 は 全 て の 位 置 パ ラ メ ー タ に 順 番 に 適 用 さ れ 、 展 開 結 果 は リ ス ト と し て 得 ら れ ま す 。 parameter が 添 字 に @ ま た は * の 付 い た 配 列 変 数 の 場 合 は 、 配 列 の 要 素 の そ れ ぞ れ に 大 文 字 小 文 字 の 変 換 が 適 用 さ れ 、 結 果 は リ ス ト に 展 開 さ れ ま す 。 コ マ ン ド 置 換 コ マ ン ド 置 換 (command substitution) を 用 い る と 、 コ マ ン ド 名 を コ マ ン ド の 出 力 で 置 き 換 え ら れ ま す 。 コ マ ン ド 置 換 に は 以 下 の 2 つ の 形 式 が あ り ま す :

$(command) ま た は
`
command`

bashcommand を 実 行 し 、 command の 標 準 出 力 で コ マ ン ド 置 換 の 部 分 を 置 き 換 え ま す 。 こ の 際 、 末 尾 の 改 行 文 字 は 削 除 さ れ ま す 。 文 字 列 の 途 中 に あ る 改 行 文 字 は 削 除 さ れ ま せ ん が 、 単 語 分 割 の 際 に 削 除 さ れ る こ と が あ り ま す 。 コ マ ン ド 置 換 $(cat file) は 、 同 じ 意 味 を 持 ち 、 し か も 高 速 な $(< file) に 置 き 換 え 可 能 で す 。 バ ッ ク ク ォ ー ト を 使 う 古 い 形 式 の 置 換 を 用 い た と き 、 バ ッ ク ス ラ ッ シ ュ は 文 字 通 り の 意 味 を 保 ち ま す が 、 $, , \ の 前 に あ る 場 合 は 例 外 と な り ま す 。 コ マ ン ド 置 換 は 、 バ ッ ク ス ラ ッ シ ュ が 前 置 さ れ て い な い バ ッ ク ク ォ ー ト ま で の 部 分 で す 。 $(command) と い う 形 式 を 用 い た と き は 、 括 弧 の 間 に あ る 全 て の 文 字 が コ マ ン ド と な り ま す 。 特 別 扱 い さ れ る 文 字 は あ り ま せ ん 。 コ マ ン ド 置 換 は 入 れ 子 に で き ま す 。 バ ッ ク ク ォ ー ト 形 式 の と き に 入 れ 子 を 行 う に は 、 内 側 の バ ッ ク ク ォ ー ト を バ ッ ク ス ラ ッ シ ュ で エ ス ケ ー プ し ま す 。 置 換 が ダ ブ ル ク ォ ー ト 内 部 に あ る 場 合 に は 、 置 換 の 結 果 に 対 す る 単 語 分 割 と パ ス 名 展 開 は 行 わ れ ま せ ん 。 算 術 式 展 開 算 術 式 展 開 を 使 う と 、 算 術 式 を 評 価 し て 、 そ の 結 果 に 置 換 で き ま す 。 算 術 式 展 開 の フ ォ ー マ ッ ト を 次 に 示 し ま す :

$((expression))

expression は ダ ブ ル ク ォ ー ト 内 部 に あ る 場 合 と 同 様 に 扱 わ れ ま す が 、 括 弧 の 内 側 の ダ ブ ル ク ォ ー ト が 特 別 扱 い さ れ る こ と は あ り ま せ ん 。 式 に 含 ま れ る 全 て の ト ー ク ン に 対 し て 、 パ ラ メ ー タ 展 開 ・ 文 字 列 展 開 ・ コ マ ン ド 置 換 ・ ク ォ ー ト の 削 除 が 行 わ れ ま す 。 算 術 式 置 換 は 入 れ 子 に で き ま す 。 評 価 は 後 述 の 算 術 式 評 価 で 示 す 規 則 に 基 づ い て 行 わ れ ま す 。 expression が 不 正 で あ れ ば 、 bash は 評 価 の 失 敗 を 示 す メ ッ セ ー ジ を 出 力 し 、 置 換 を 全 く 行 い ま せ ん 。 プ ロ セ ス 置 換 プ ロ セ ス 置 換 (process substitution) が サ ポ ー ト さ れ る の は 、 名 前 付 き パ イ プ (FIFO) ま た は フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の /dev/fd 形 式 で の 指 定 を サ ポ ー ト し て い る シ ス テ ム で す 。 こ れ は <(list) ま た は >(list) の 形 に な り ま す 。 プ ロ セ ス list は 、 そ の 入 力 や 出 力 が FIFO ま た は /dev/fd 中 の 何 ら か の フ ァ イ ル に 接 続 さ れ た 状 態 で 実 行 さ れ ま す 。 こ の フ ァ イ ル の 名 前 は 、 展 開 の 結 果 と し て 、 引 き 数 の 形 で 現 在 の コ マ ン ド に 渡 さ れ ま す 。 >(list) の 形 式 を 使 っ た 場 合 、 フ ァ イ ル へ の 書 き 込 み は list へ の 入 力 と な り ま す 。 <(list) の 形 式 を 使 っ た 場 合 、 引 き 数 と し て 渡 さ れ た フ ァ イ ル は list の 出 力 を 得 る た め に 読 み 込 ま れ ま す 。 利 用 可 能 で あ れ ば 、 プ ロ セ ス 置 換 (process substitution) は 、 パ ラ メ ー タ 展 開 、 変 数 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 と 同 時 に 行 わ れ ま す 。 単 語 の 分 割 パ ラ メ ー タ 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 が 行 わ れ た の が 、 ダ ブ ル ク ォ ー ト の 内 側 で は な い 場 合 、 シ ェ ル は 展 開 の 結 果 を ス キ ャ ン し て 、 単 語 分 割 を 行 い ま す 。 シ ェ ル は IFS の そ れ ぞ れ の 文 字 を 区 切 り 文 字 と し て 扱 い 、 ほ か の 展 開 の 結 果 を こ れ ら の 文 字 に よ っ て 単 語 に 分 割 し ま す 。 IFS が 設 定 さ れ て い な い か 、 そ の 値 が デ フ ォ ル ト 値 の <ス ペ ー ス ><タ ブ ><改 行 > と 全 く 同 じ な ら ば 、 前 段 の 展 開 の 結 果 の 先 頭 や 末 尾 の <ス ペ ー ス >, <タ ブ >, <改 行 > の 並 び は 無 視 さ れ 、 先 頭 と 末 尾 以 外 の IFS 文 字 の 並 び で 単 語 が 区 切 ら れ ま す 。 IFS の 値 が デ フ ォ ル ト 以 外 の と き に 、 ス ペ ー ス や タ ブ と い う 空 白 文 字 の 並 び が 単 語 の 先 頭 と 末 尾 で 無 視 さ れ る の は 、 そ の 空 白 文 字 が IFS の 値 に 含 ま れ る と き ( IFS の 空 白 文 字 の 一 つ で あ る と き ) だ け で す 。 IFS に 含 ま れ 、 IFS 空 白 文 字 で は な い 文 字 は 全 て 、 隣 接 す る 任 意 の IFS 空 白 文 字 と 一 緒 に な っ て フ ィ ー ル ド の 区 切 り と な り ま す 。 IFS 空 白 文 字 の 列 も 区 切 り 文 字 と し て 扱 わ れ ま す 。 IFS の 値 が 空 文 字 列 で あ れ ば 、 単 語 分 割 は 全 く 行 わ れ ま せ ん 。 明 示 的 に 指 定 し た 空 の 引 き 数 ("" ま た は '') は 削 除 さ れ ず に 残 り ま す 。 ク ォ ー ト さ れ て い な い 暗 黙 的 な 空 の 引 き 数 が 、 値 を 持 た な い パ ラ メ ー タ を 展 開 し た 結 果 と し て 得 ら れ ま す が 、 こ れ ら は 削 除 さ れ ま す 。 値 を 持 た な い パ ラ メ ー タ が ダ ブ ル ク ォ ー ト 内 部 で 展 開 さ れ る と 、 空 で あ る 引 き 数 と な り 、 消 さ れ ず に 残 り ま す 。 展 開 が 行 わ れ な け れ ば 単 語 分 割 も 行 わ れ な い 点 に 注 意 し て く だ さ い 。 パ ス 名 展 開
−f
オ プ シ ョ ン が 指 定 さ れ て い な け れ ば 、 単 語 分 割 を 行 っ た 後 に bash は そ れ ぞ れ の 単 語 が *, ?, [ を 含 ん で い る か ど う か 調 べ ま す 。 こ れ ら の 文 字 の い ず れ か が 見 つ か る と 、 そ の 単 語 は パ タ ー ン と み な さ れ 、 パ タ ー ン に マ ッ チ す る フ ァ イ ル 名 を ア ル フ ァ ベ ッ ト 順 に ソ ー ト し た リ ス ト に 置 換 さ れ ま す 。 マ ッ チ す る フ ァ イ ル 名 が 見 つ か ら ず 、 か つ シ ェ ル の オ プ シ ョ ン nullglob が 無 効 な ら ば 、 そ の 単 語 は 変 更 さ れ ず に そ の ま ま 残 り ま す 。 nullglob オ プ シ ョ ン が 設 定 さ れ て い て 、 か つ マ ッ チ す る フ ァ イ ル 名 が 見 つ か ら な け れ ば 、 そ の 単 語 は 削 除 さ れ ま す 。 failglob オ プ シ ョ ン が 設 定 さ れ て い て 、 か つ マ ッ チ す る フ ァ イ ル 名 が 見 つ か ら な け れ ば 、 エ ラ ー メ ッ セ ー ジ が 表 示 さ れ コ マ ン ド は 実 行 さ れ ま せ ん 。 シ ェ ル の オ プ シ ョ ン nocaseglob が 有 効 な ら ば 、 マ ッ チ ン グ に お い て ア ル フ ァ ベ ッ ト の 大 文 字 と 小 文 字 は 区 別 さ れ ま せ ん 。 パ タ ー ン を パ ス 名 展 開 に 使 う と き 、 名 前 の 先 頭 や ス ラ ッ シ ュ の 直 後 の “.” は 明 示 的 に マ ッ チ さ せ な け れ ば な り ま せ ん 。 た だ し シ ェ ル の オ プ シ ョ ン dotglob が 設 定 さ れ て い る 場 合 は 例 外 で す 。 パ ス 名 の マ ッ チ ン グ を 行 う と き 、 ス ラ ッ シ ュ 文 字 は 必 ず 明 示 的 に マ ッ チ さ せ な け れ ば な り ま せ ん 。 こ れ 以 外 の 場 合 に は 、 “.” が 特 別 扱 い さ れ る こ と は あ り ま せ ん 。 シ ェ ル の オ プ シ ョ ン nocaseglob, nullglob, failglob, dotglob の 詳 し い 説 明 に つ い て は 、 後 述 の シ ェ ル の 組 み 込 み コ マ ン ド に 書 か れ て い る shopt の 説 明 を 参 照 し て く だ さ い 。 シ ェ ル 変 数 GLOBIGNORE を 使 っ て 、 パ タ ー ン に マ ッ チ す る フ ァ イ ル 名 の 集 合 を 制 限 で き ま す 。 GLOBIGNORE が 設 定 さ れ て い れ ば 、 マ ッ チ す る フ ァ イ ル 名 の う ち GLOBIGNORE 中 の パ タ ー ン に も マ ッ チ し た も の は 、 マ ッ チ し た も の の リ ス ト か ら 取 り 除 か れ ま す 。 フ ァ イ ル 名 “.”“..”GLOBIGNORE に 空 で な い 値 が 設 定 さ れ て い て も 必 ず 無 視 さ れ ま す 。 し か し 、 GLOBIGNORE に 空 で な い 値 を 設 定 す る と シ ェ ル オ プ シ ョ ン の dotglob が 有 効 に な る の で 、 “.” で 始 ま る ほ か の フ ァ イ ル 名 は 全 て マ ッ チ し ま す 。 “.” で 始 め る フ ァ イ ル 名 を 無 視 す る 古 い 動 作 を さ せ る に は 、 “.*”GLOBIGNORE の パ タ ー ン に 含 め て く だ さ い 。 GLOBIGNORE を unset す る と 、 dotglob オ プ シ ョ ン は 無 効 に な り ま す 。 パ タ ー ン マ ッ チ ン グ パ タ ー ン に 含 ま れ る 文 字 の う ち 、 以 下 の 特 殊 パ タ ー ン 文 字 以 外 の 文 字 は 、 自 分 自 身 に マ ッ チ し ま す 。 NUL 文 字 が パ タ ー ン 中 に 現 わ れ て は い け ま せ ん 。 バ ッ ク ス ラ ッ シ ュ は 直 後 の 文 字 を エ ス ケ ー プ し ま す 。 こ の バ ッ ク ス ラ ッ シ ュ は 、 マ ッ チ ン グ で は 無 視 さ れ ま す 特 殊 パ タ ー ン 文 字 を そ の 文 字 そ の も の に マ ッ チ さ せ る た め に は 、 ク ォ ー ト し な け れ ば な り ま せ ん 。 特 殊 パ タ ー ン 文 字 は 以 下 の 意 味 を 持 っ て い ま す :

* 空 文 字 列 を 含 む 、 任 意 の 文 字 列 に マ ッ チ し ま す 。 シ ェ ル オ プ シ ョ ン

globstar が 有 効 で 、 * が パ ス 名 展 開 に 用 い ら れ る 場 面 で は 、 連 続 す る 2 つ の * だ け の パ タ ー ン が 使 わ れ る と 、 そ の 階 層 以 下 の デ ィ レ ク ト リ と そ の サ ブ デ ィ レ ク ト リ 、 そ こ に あ る 全 て の フ ァ イ ル に マ ッ チ し ま す 。 2 つ 連 続 し た * の 後 に / が 続 く 場 合 に は 、 デ ィ レ ク ト リ と そ の サ ブ デ ィ レ ク ト リ の み に マ ッ チ し ま す 。

? 任 意 の

1 文 字 に マ ッ チ し ま す 。

[...] 括 ら れ た

文 字 の う ち 任 意 の 1 文 字 に マ ッ チ し ま す 。 2 つ の 文 字 の 間 に ハ イ フ ン を 入 れ た も の は 、 範 囲 表 現 (range expression) を 表 し ま す 。 ソ ー ト 順 で 両 端 を 含 む 2 つ の 文 字 の 間 に あ る 任 意 の 1 文 字 と マ ッ チ し ま す 。 ソ ー ト に は 現 在 の ロ ケ ー ル の 照 合 順 序 (collating sequence) と 文 字 セ ッ ト が 用 い ら れ ま す 。 [ の 次 の 文 字 が ! ま た は ^ な ら ば 、 括 ら れ た 文 字 に 含 ま れ な い 任 意 の 1 文 字 に マ ッ チ し ま す 。 範 囲 表 現 に お け る 文 字 の ソ ー ト 順 は 、 現 在 の ロ ケ ー ル (お よ び シ ェ ル 変 数 LC_COLLATE が 指 定 さ れ て い れ ば そ の 値 ) に よ っ て 決 定 さ れ ま す 。 は 、 文 字 集 合 の 最 初 ま た は 最 後 の 文 字 と し て 含 め る と マ ッ チ ン グ の 対 象 に で き ま す 。 ] は 、 文 字 集 合 の 最 初 の 文 字 と し て 含 め る と マ ッ チ ン グ の 対 象 に で き ま す 。

[] の 間 で は 、 文 字 ク ラ ス (character classes) を 指 定 で き ま す 。 指 定 に は [:class:] と い う 記 法 を 使 い ま す 。 こ こ で class は POSIX 標 準 で 定 義 さ れ て い る 以 下 の ク ラ ス の い ず れ か で す :
alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit
文 字 ク ラ ス は 、 そ の ク ラ ス の 属 す る 任 意 の 文 字 に マ ッ チ し ま す 。 文 字 ク ラ ス word は 、 文 字 、 数 字 、 _ に マ ッ チ し ま す 。

[] の 間 で は 、 等 値 ク ラ ス (equivalence class) を 指 定 で き ま す 。 指 定 に は [=c=] と い う 記 法 を 使 い ま す 。 こ れ は 現 在 の ロ ケ ー ル に お け る 定 義 に お い て c と 同 じ 照 合 重 み (collation weight) を 持 つ 全 て の 文 字 に マ ッ チ し ま す 。

[] の 間 で は 、 [.symbol.] と い う 記 述 は 照 合 シ ン ボ ル symbol に マ ッ チ し ま す 。 組 み 込 み コ マ ン ド の shopt を 使 っ て シ ェ ル の オ プ シ ョ ン extglob が 有 効 に さ れ て い る と 、 拡 張 パ タ ー ン マ ッ チ ン グ 演 算 子 が い く つ か 認 識 さ れ る よ う に な り ま す 。 以 下 の 説 明 で は 、 pattern−list| で 区 切 ら れ た 1 つ 以 上 の パ タ ー ン の リ ス ト で あ る も の と し ま す 。 以 下 の サ ブ パ タ ー ン を 1 つ あ る い は 複 数 使 う こ と に よ り 、 複 合 パ タ ー ン を 作 れ ま す 。

?(pattern−list) 与 え ら れ た パ タ ー ン が 0 回 ま た は 1 回 現 わ れ る と マ ッ チ し ま す 。
*(
pattern−list) 与 え ら れ た パ タ ー ン が 0 回 以 上 現 わ れ る と マ ッ チ し ま す 。
+(
pattern−list) 与 え ら れ た パ タ ー ン が 1 回 以 上 現 わ れ る と マ ッ チ し ま す 。
@(
pattern−list) 与 え ら れ た パ タ ー ン に 1 回 だ け マ ッ チ し ま す 。
!(
pattern−list) 与 え ら れ た パ タ ー ン の ど れ で も な い も の に マ ッ チ し ま す 。 ク ォ ー ト の 削 除 先 に 処 理 さ れ る 展 開 の 後 、 ク ォ ー ト さ れ て い な い \, , " の う ち 、 先 の 展 開 の 結 果 で な い も の は 全 て 削 除 さ れ ま す 。

リ ダ イ レ ク ト

シ ェ ル が 解 釈 す る 特 別 な 記 法 を 用 い る と 、 コ マ ン ド の 実 行 前 に 入 出 力 を リ ダ イ レ ク ト で き ま す 。 ま た リ ダ イ レ ク ト を 使 う と 、 現 在 の シ ェ ル 実 行 環 境 に 対 し て フ ァ イ ル を オ ー プ ン し た り ク ロ ー ズ し た り で き ま す 。 以 下 に 示 す リ ダ イ レ ク ト 演 算 子 は 、 単 純 な コ マ ン ド の 前 や 途 中 に 置 く こ と が で き 、 ま た コ マ ン ド の 後 に 置 け ま す 。 リ ダ イ レ ク ト は 左 か ら 右 へ と 、 現 わ れ た 順 に 処 理 さ れ ま す 。 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 番 号 で 始 ま る リ ダ イ レ ク ト で は 、 代 わ り に {varname} と い う 形 式 の 単 語 で 始 め る こ と も で き ま す 。 こ の 場 合 、 >&− と <&− 以 外 の リ ダ イ レ ク ト 演 算 子 で は 、 シ ェ ル は 10 よ り 大 き い フ ァ イ ル ・ デ ィ ス ク リ プ タ ー を 割 り 当 て 、 varname に 代 入 し ま す 。 {varname} で 始 ま る >&− や <&− の 場 合 に は 、 varname の 値 は ク ロ ー ズ す る フ ァ イ ル ・ デ ィ ス ク リ プ タ ー を 示 し ま す 。 以 下 の 説 明 に お い て は 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 番 号 が 省 略 さ れ 、 か つ リ ダ イ レ ク ト 演 算 子 の 最 初 の 文 字 が < な ら ば 、 リ ダ イ レ ク ト は 標 準 入 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0) を 参 照 し ま す 。 リ ダ イ レ ク ト 演 算 子 の 最 初 の 文 字 が > な ら ば 、 リ ダ イ レ ク ト は 標 準 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1) を 参 照 し ま す 。 以 下 の 説 明 で は 、 リ ダ イ レ ク ト 演 算 子 の 次 の 単 語 に 対 し て は 、 特 に 説 明 し な い 限 り 、 ブ レ ー ス 展 開 ・ チ ル ダ 展 開 ・ パ ラ メ ー タ 展 開 ・ コ マ ン ド 置 換 ・ 算 術 式 展 開 ・ ク ォ ー ト 削 除 ・ パ ス 名 展 開 ・ 単 語 分 割 が 行 わ れ ま す 。 そ の 単 語 が 複 数 の 単 語 に 展 開 さ れ た 場 合 は エ ラ ー に な り ま す 。 リ ダ イ レ ク ト の 順 番 に は 意 味 が あ る 点 に 注 意 し て く だ さ い 。 例 え ば 、 次 の コ マ ン ド

ls > dirlist 2>&1 は 標 準 出 力 と 標 準 エ ラ ー 出 力 を 両 方 と も フ ァ イ ル dirlist に 書 き 込 み ま す が 、 次 の コ マ ン ド

ls 2>&1 > dirlist で は 標 準 出 力 だ け が フ ァ イ ル dirlist に 書 き 込 ま れ ま す 。 な ぜ な ら 後 者 の 場 合 に は 、 標 準 エ ラ ー 出 力 は dirlist に リ ダ イ レ ク ト さ れ る 前 の 標 準 出 力 の 複 製 と な る か ら で す 。

bash は 、 以 下 の 表 に あ る よ う な フ ァ イ ル 名 が リ ダ イ レ ク ト に 使 用 さ れ る と 、 そ れ ら を 特 別 に 扱 い ま す 。

/dev/fd/fd

fd が 有 効 な 整 数 な ら ば フ ァ イ ル ・ デ ィ ス ク リ プ タ ー fd が 複 製 さ れ ま す 。

/dev/stdin フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0 が 複 製 さ れ ま す 。
/dev/stdout
フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1 が 複 製 さ れ ま す 。
/dev/stderr
フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 2 が 複 製 さ れ ま す 。
/dev/tcp/
host/port

host が 有 効 な ホ ス ト 名 ま た は イ ン タ ー ネ ッ ト ア ド レ ス で port が 整 数 の ポ ー ト 番 号 な ら ば 、 bash は 対 応 す る ソ ケ ッ ト に 対 し て TCP 接 続 の オ ー プ ン を 試 み ま す 。

/dev/udp/host/port

host が 有 効 な ホ ス ト 名 ま た は イ ン タ ー ネ ッ ト ア ド レ ス で port が 整 数 の ポ ー ト 番 号 な ら ば 、 bash は 対 応 す る ソ ケ ッ ト に 対 し て UDP 接 続 の オ ー プ ン を 試 み ま す 。 フ ァ イ ル の オ ー プ ン や 作 成 に 失 敗 す る と 、 リ ダ イ レ ク ト も 失 敗 し ま す 。

9 よ り 大 き い フ ァ イ ル ・ デ ィ ス ク リ プ タ ー を 使 っ た リ ダ イ レ ク ト に は 注 意 が 必 要 で す 。 シ ェ ル が 内 部 的 に 使 う フ ァ イ ル ・ デ ィ ス ク リ プ タ ー と 競 合 す る 場 合 が あ る か ら で す 。 入 力 の リ ダ イ レ ク ト 入 力 を リ ダ イ レ ク ト す る と 、 word を 展 開 し た 結 果 の 名 前 を 持 つ フ ァ イ ル が オ ー プ ン さ れ 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー n で 読 み 込 め る よ う に な り ま す 。 n が 指 定 さ れ て い な け れ ば 、 読 み 込 み は 標 準 入 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0) で 行 わ れ ま す 。 入 力 の リ ダ イ レ ク ト は 、 一 般 的 に は 以 下 の 形 式 で す :

[n]<word 出 力 の リ ダ イ レ ク ト 出 力 を リ ダ イ レ ク ト す る と 、 word の 展 開 し た 結 果 の 名 前 を 持 つ フ ァ イ ル が オ ー プ ン さ れ 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー n で 書 き 込 め る よ う に な り ま す 。 n が 指 定 さ れ て い な け れ ば 、 書 き 込 み は 標 準 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1) に 行 わ れ ま す 。 フ ァ イ ル が 存 在 し な か っ た 場 合 は 作 成 さ れ ま す 。 フ ァ イ ル が 存 在 し た 場 合 は サ イ ズ 0 に 切 り 詰 め ら れ ま す 。 出 力 の リ ダ イ レ ク ト は 、 一 般 的 に は 以 下 の 形 式 で す :

[n]>word リ ダ イ レ ク ト 演 算 子 が > で あ り 、 か つ 組 み 込 み コ マ ン ド setnoclobber オ プ シ ョ ン が 有 効 に な っ て い る 場 合 、 word の 展 開 で 得 た フ ァ イ ル が 存 在 し 、 か つ そ れ が 通 常 フ ァ イ ル な ら ば 、 リ ダ イ レ ク ト は 失 敗 し ま す 。 リ ダ イ レ ク ト 演 算 子 が >| の 場 合 、 も し く は リ ダ イ レ ク ト 演 算 子 が > で 組 み 込 み コ マ ン ド setnoclobber オ プ シ ョ ン が 有 効 に な っ て い な い 場 合 、 word と い う 名 前 の フ ァ イ ル が 存 在 し て い て も リ ダ イ レ ク ト が 試 み ら れ ま す 。 リ ダ イ レ ク ト に よ る 追 加 出 力 こ の 形 式 を 使 っ て 出 力 の リ ダ イ レ ク ト を 行 う と 、 word を 展 開 し た 結 果 の 名 前 を 持 つ フ ァ イ ル が オ ー プ ン さ れ 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー n に 対 す る 出 力 が こ の フ ァ イ ル に 追 加 さ れ る よ う に な り ま す 。 n を 指 定 し な け れ ば 、 標 準 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1) で 追 加 さ れ ま す 。 フ ァ イ ル が 存 在 し な け れ ば 、 新 し く 作 ら れ ま す 。 追 加 出 力 は 一 般 的 に は 以 下 の 形 式 で す :

[n]>>word 標 準 出 力 と 標 準 エ ラ ー 出 力 の リ ダ イ レ ク ト こ の 構 造 を 使 う と 、 標 準 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1) と 標 準 エ ラ ー 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 2) の 両 方 を 、 word を 展 開 し た 結 果 の 名 前 を 持 つ フ ァ イ ル に リ ダ イ レ ク ト で き ま す 。 標 準 出 力 と 標 準 エ ラ ー 出 力 に 対 す る 形 式 は 2 つ あ り ま す :

&>word>&word 両 者 の う ち 望 ま し い の は 前 者 の 方 で す 。 上 記 は 以 下 と 同 じ 意 味 で す : >word 2>&1 標 準 出 力 と 標 準 エ ラ ー 出 力 の 追 加 出 力 こ の 構 造 を 使 う と 、 標 準 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1) と 標 準 エ ラ ー 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 2) の 両 方 を 、 word を 展 開 し た 結 果 の 名 前 を 持 つ フ ァ イ ル に 追 加 で き ま す 。 標 準 出 力 と 標 準 エ ラ ー 出 力 の 追 加 出 力 は 以 下 の 形 式 で す :

&>>word こ れ は 次 の も の と 同 じ 意 味 で す : >>word 2>&1 ヒ ア ド キ ュ メ ン ト (Here Documents) こ の 形 式 の リ ダ イ レ ク ト を 用 い る と 、 シ ェ ル は 現 在 の ソ ー ス か ら 入 力 を 読 み 込 み ま す 。 こ の 読 み 込 み は word を 単 独 で 含 む 行 (末 尾 に ブ ラ ン ク 文 字 が あ っ て は い け ま せ ん ) が 現 わ れ る ま で 続 き ま す 。 そ の 行 ま で に 読 み 込 ん だ 行 は 、 コ マ ン ド の 標 準 入 力 と し て 扱 わ れ ま す 。 ヒ ア ド キ ュ メ ン ト の 形 式 を 以 下 に 示 し ま す :

<<[]word
here−document
delimiter

word に 対 す る パ ラ メ ー タ 展 開 ・ コ マ ン ド 置 換 ・ 算 術 式 展 開 ・ パ ス 名 展 開 は 全 く 行 わ れ ま せ ん 。 word が 一 部 で も ク ォ ー ト さ れ て い る 場 合 は 、 delimiterword の ク ォ ー ト を ほ ど い た 結 果 (ク ォ ー ト 文 字 を 削 除 し た 結 果 ) と な り 、 ヒ ア ド キ ュ メ ン ト に 含 ま れ る 行 で は 展 開 が 行 わ れ な く な り ま す 。 word が ク ォ ー ト さ れ て い な け れ ば 、 ヒ ア ド キ ュ メ ン ト 中 の 全 て の 行 に 対 し て パ ラ メ ー タ 展 開 ・ コ マ ン ド 置 換 ・ 算 術 式 展 開 が 行 わ れ ま す 。 word が ク ォ ー ト さ れ て い な い 場 合 に は 、 \<newline> と い う 文 字 列 は 無 視 さ れ 、 \, $, と い っ た 文 字 は \ を 用 い て ク ォ ー ト し な け れ ば な り ま せ ん 。 リ ダ イ レ ク ト 演 算 子 が <<− な ら ば 、 行 頭 に あ る タ ブ 文 字 は 全 て 入 力 行 お よ び delimiter を 含 む 行 か ら 取 り 除 か れ ま す 。 こ れ に よ り 、 シ ェ ル ス ク リ プ ト 中 の ヒ ア ド キ ュ メ ン ト を 自 然 な 形 で イ ン デ ン ト さ せ る こ と が で き ま す 。 ヒ ア ス ト リ ン グ (Here Strings) ヒ ア ド キ ュ メ ン ト の 変 形 で 、 以 下 の 形 式 で す :

<<<word

word は 展 開 さ れ て コ マ ン ド の 標 準 入 力 に 与 え ら れ ま す 。 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の 複 製 リ ダ イ レ ク ト 演 算 子

[n]<&word を 使 う と 入 力 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー を 複 製 で き ま す 。 word が 1 桁 以 上 の 数 値 に 展 開 さ れ た 場 合 、 n で 示 さ れ る フ ァ イ ル ・ デ ィ ス ク リ プ タ ー が 生 成 さ れ 、 word で 指 定 さ れ た 数 値 の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の コ ピ ー と な り ま す 。 word に 含 ま れ る 数 値 が 入 力 用 に オ ー プ ン さ れ た フ ァ イ ル ・ デ ィ ス ク リ プ タ ー を 指 し て い な い 場 合 、 リ ダ イ レ ク ト ・ エ ラ ー が 起 き ま す 。 word を 評 価 し た 結 果 が と な っ た 場 合 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー n は ク ロ ー ズ さ れ ま す 。 n が 指 定 さ れ て い な い 場 合 、 標 準 入 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0) が 使 わ れ ま す 。 同 様 に 、 演 算 子

[n]>&word を 使 っ て 出 力 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー を 複 製 で き ま す 。 n が 指 定 さ れ て い な い 場 合 は 、 標 準 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1) が 使 わ れ ま す 。 word に 含 ま れ る 数 値 が 、 出 力 用 に オ ー プ ン さ れ た フ ァ イ ル ・ デ ィ ス ク リ プ タ ー を 指 し て い な い 場 合 、 リ ダ イ レ ク ト ・ エ ラ ー が 起 き ま す 。 特 別 な 場 合 で す が 、 n が 省 略 さ れ 、 か つ word が 1 桁 以 上 の 数 字 に は 展 開 さ れ な か っ た 場 合 、 前 に 説 明 し た よ う に 標 準 出 力 と 標 準 エ ラ ー 出 力 が リ ダ イ レ ク ト さ れ ま す 。 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の 変 更 リ ダ イ レ ク ト 演 算 子

[n]<&digit を 使 う と 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の digitn に 変 更 し ま す 。 n が 指 定 さ れ て い な い 場 合 は 、 標 準 入 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0) が 使 わ れ ま す 。 digitn に 複 製 さ れ た 後 に ク ロ ー ズ さ れ ま す 。 同 様 に 、 演 算 子

[n]>&digit を 使 う と 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の digitn に 変 更 し ま す 。 n が 指 定 さ れ て い な い 場 合 は 、 標 準 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1) が 使 わ れ ま す 。 読 み 書 き の た め の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の オ ー プ ン リ ダ イ レ ク ト 演 算 子

[n]<>word を 使 う と 、 word を 展 開 し た 結 果 の 名 前 を 持 つ フ ァ イ ル が フ ァ イ ル ・ デ ィ ス ク リ プ タ ー n で の 読 み 書 き の た め に オ ー プ ン さ れ ま す 。 n が 指 定 さ れ て い な け れ ば 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0 で 読 み 書 き が 行 わ れ ま す 。 フ ァ イ ル が 存 在 し な け れ ば 、 新 し く 生 成 さ れ ま す 。

エ イ リ ア ス

エ イ リ ア ス (alias) を 使 う と 、 あ る 単 語 が 単 純 な コ マ ン ド の 先 頭 の 単 語 と し て 使 わ れ た 場 合 に 、 こ の 文 字 列 を 別 の 単 語 に 置 換 で き ま す 。 シ ェ ル は エ イ リ ア ス の リ ス ト を 管 理 し て い ま す 。 こ の リ ス ト は 組 み 込 み コ マ ン ド の aliasunalias を 使 っ て 設 定 お よ び 削 除 で き ま す (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。 各 コ マ ン ド の 最 初 の 単 語 が ク ォ ー ト さ れ て い な い 場 合 、 エ イ リ ア ス か ど う か が 確 認 さ れ 、 エ イ リ ア ス な ら ば そ の 単 語 は そ の エ イ リ ア ス の テ キ ス ト と 置 換 さ れ ま す 。 /$`=、 シ ェ ル の メ タ 文 字 (metacharacters) や ク ォ ー ト 文 字 は エ イ リ ア ス 名 に は 使 え ま せ ん 。 エ イ リ ア ス 名 と 置 換 さ れ る テ キ ス ト に は 、 シ ェ ル の 入 力 と し て 有 効 な も の は 何 で も 含 め る こ と が で き ま す 。 こ れ に は 先 に 挙 げ た メ タ 文 字 も 含 ま れ ま す 。 置 換 さ れ た テ キ ス ト の 最 初 の 単 語 に 対 し て も エ イ リ ア ス か ど う か の 評 価 が さ れ ま す が 、 最 初 の 単 語 が 展 開 さ れ る エ イ リ ア ス と 同 じ 場 合 に は 展 開 は 一 度 し か 行 わ れ ま せ ん 。 つ ま り lsls −F の エ イ リ ア ス と な っ て い る よ う な 場 合 に は 、 bash は 置 換 さ れ る 文 字 列 を 再 帰 的 に 展 開 す る こ と は あ り ま せ ん 。 エ イ リ ア ス の 値 の 最 後 の 文 字 が ブ ラ ン ク 文 字 の 場 合 、 エ イ リ ア ス に 続 く 次 の コ マ ン ド の 単 語 に 対 し て も エ イ リ ア ス 展 開 が 試 み ら れ ま す 。 エ イ リ ア ス は alias コ マ ン ド で 作 成 と リ ス ト 表 示 を 行 い 、 unalias コ マ ン ド で 削 除 し ま す 。 置 換 さ れ る テ キ ス ト に 引 き 数 を 入 れ る 仕 組 み は あ り ま せ ん 。 引 き 数 が 必 要 な ら ば 、 シ ェ ル 関 数 を 使 わ な け れ ば な り ま せ ん (後 述 の 関 数 を 参 照 ) シ ェ ル が 対 話 的 で な い と き に は 、 shopt コ マ ン ド に よ っ て expand_aliases オ プ シ ョ ン が 設 定 さ れ て い な い 場 合 に 限 り 、 エ イ リ ア ス の 展 開 は 行 わ れ ま せ ん (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド に お け る shopt の 説 明 を 参 照 )。 エ イ リ ア ス の 定 義 や 利 用 に 関 係 す る 規 則 に は 、 紛 ら わ し い 点 が あ り ま す 。 bash は 、 あ る 行 に 書 か れ て い る コ マ ン ド を 実 行 す る 前 に 必 ず 、 少 な く と も 1 回 は 行 全 体 を 読 み 込 み ま す 。 エ イ リ ア ス が 展 開 さ れ る の は コ マ ン ド を 読 み 込 ん だ と き で あ り 、 実 行 す る と き で は あ り ま せ ん 。 し た が っ て 、 別 の コ マ ン ド と 同 じ 行 で エ イ リ ア ス 定 義 を 行 っ た 場 合 に は 、 次 の 入 力 行 が 読 み 込 ま れ る ま で は エ イ リ ア ス の 効 果 は 現 わ れ ま せ ん 。 同 じ 行 に あ る エ イ リ ア ス 定 義 の 後 の コ マ ン ド は 、 新 し い エ イ リ ア ス の 影 響 を 受 け ま せ ん 。 こ の 動 作 は 関 数 を 実 行 す る 場 合 に も 問 題 に な り ま す 。 エ イ リ ア ス が 展 開 さ れ る の は 関 数 定 義 が 読 み 込 ま れ る と き で あ り 、 関 数 が 実 行 さ れ る と き で は あ り ま せ ん 。 な ぜ な ら 、 関 数 定 義 自 身 も 複 合 コ マ ン ド だ か ら で す 。 そ の 結 果 と し て 、 関 数 内 で 定 義 さ れ た エ イ リ ア ス は 、 そ の 関 数 が 実 行 さ れ る ま で は 利 用 で き ま せ ん 。 安 全 の た め 、 エ イ リ ア ス 定 義 は 独 立 し た 行 で 行 う べ き で す 。 複 合 コ マ ン ド 内 で alias を 使 っ て は い け ま せ ん 。 ほ と ん ど 全 て の 用 途 に お い て 、 シ ェ ル 関 数 で エ イ リ ア ス を 代 用 で き ま す 。

関 数

シ ェ ル 関 数 は 、 後 で 使 う た め に 一 連 の コ マ ン ド を 保 存 す る も の で す 。 シ ェ ル 関 数 の 定 義 は 既 に シ ェ ル の 文 法 で 説 明 し て い ま す 。 シ ェ ル 関 数 名 が 単 純 な コ マ ン ド 名 と し て 使 わ れ た 場 合 、 関 数 名 に 対 応 す る コ マ ン ド 群 が 実 行 さ れ ま す 。 関 数 は 現 在 の シ ェ ル の コ ン テ キ ス ト 内 で 実 行 さ れ ま す 。 つ ま り 、 新 し い プ ロ セ ス を 生 成 し て 関 数 を 処 理 す る こ と は あ り ま せ ん (こ れ は シ ェ ル ス ク リ プ ト と 対 照 的 な 点 で す )。 関 数 の 実 行 時 に は 、 関 数 に 与 え た 引 き 数 が 位 置 パ ラ メ ー タ と な り ま す 。 特 殊 パ ラ メ ー タ # は 更 新 さ れ 、 こ の 変 更 が 反 映 さ れ ま す 。 特 殊 パ ラ メ ー タ 0 は 変 わ り ま せ ん 。 関 数 の 実 行 中 は FUNCNAME 変 数 の 最 初 の 要 素 に 関 数 の 名 前 が 設 定 さ れ ま す 。 上 記 以 外 は 、 シ ェ ル 実 行 環 境 の 状 態 は 全 て 、 関 数 と そ の 呼 び 出 し 側 で 同 じ に な り ま す 。 た だ し 、 以 下 の 例 外 が あ り ま す : DEBUG RETURN の ト ラ ッ プ (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド の 項 で 、 組 み 込 み コ マ ン ド trap の 説 明 を 参 照 ) は 、 関 数 に trace 属 性 (後 述 の 組 み 込 み コ マ ン ド declare の 説 明 を 参 照 ) が 与 え ら れ て い る 場 合 や 、 −o functrace シ ェ ル オ プ シ ョ ン が 組 み 込 み コ マ ン ド set に よ っ て 有 効 に な っ て い る (つ ま り 、 全 て の 関 数 が DEBUG と RETURN の ト ラ ッ プ を 継 承 し て い る ) 場 合 を 除 い て 継 承 さ れ ま せ ん 。 ERR ト ラ ッ プ は 、 −o errtrace シ ェ ル オ プ シ ョ ン が 有 効 に な っ て い な い 限 り 継 承 さ れ ま せ ん 。 関 数 ロ ー カ ル の 変 数 は 、 組 み 込 み コ マ ン ド local で 宣 言 で き ま す 。 普 通 は 、 変 数 と そ の 値 は 関 数 と そ の 呼 び 出 し 側 で 共 有 さ れ ま す 。

FUNCNEST 変 数 に 0 よ り 大 き い 数 値 を セ ッ ト す る と 、 関 数 呼 び 出 し を 何 重 ま で 許 す か の 最 大 レ ベ ル を 決 め ま す 。 こ の レ ベ ル を 超 え て 関 数 を 呼 び 出 す と 、 コ マ ン ド が 異 常 終 了 し ま す 。 組 み 込 み コ マ ン ド return が 関 数 中 で 実 行 さ れ た 場 合 、 関 数 は 完 了 し 、 関 数 呼 び 出 し の 次 の コ マ ン ド か ら 実 行 が 再 開 さ れ ま す 。 再 開 さ れ る 前 に 、 RETURN ト ラ ッ プ に 設 定 さ れ た コ マ ン ド が 実 行 さ れ ま す 。 関 数 の 完 了 時 に は 、 位 置 パ ラ メ ー タ の 値 と 特 殊 パ ラ メ ー タ # の 値 は 、 関 数 の 実 行 前 の 値 に 戻 り ま す 。 関 数 の 名 前 と 定 義 を リ ス ト 表 示 す る に は 、 組 み 込 み コ マ ン ド の declaretypeset を 、 オ プ シ ョ ン −f を 付 け て 実 行 し ま す 。 declaretypeset を オ プ シ ョ ン −F で 実 行 す る と 、 関 数 名 だ け が リ ス ト 表 示 さ れ ま す 。 ま た 、 extdebug シ ェ ル オ プ シ ョ ン が 有 効 に な っ て い る と 、 ソ ー ス フ ァ イ ル と 行 番 号 も 表 示 さ れ ま す 。 関 数 を エ ク ス ポ ー ト し て 、 サ ブ シ ェ ル で そ の 関 数 が 自 動 的 に 定 義 さ れ て い る 状 態 に で き ま す 。 こ れ を 行 う に は 、 組 み 込 み コ マ ン ド の export−f オ プ シ ョ ン を 付 け て 実 行 し ま す 。 組 み 込 み コ マ ン ド の unset−f オ プ シ ョ ン を 付 け て 実 行 す る こ と で 、 関 数 定 義 を 削 除 す る こ と も で き ま す 。 同 じ 名 前 の シ ェ ル 関 数 と 変 数 が シ ェ ル の 子 プ ロ セ ス に エ ク ス ポ ー ト さ れ る と 、 同 じ 環 境 の 中 に 全 く 同 じ 名 前 の エ ン ト リ が 複 数 で き て し ま う こ と に 注 意 し て く だ さ い 。 こ れ が 問 題 を 起 こ す 場 合 に は 注 意 が 必 要 で す 。 関 数 は 再 帰 さ せ る こ と が で き ま す 。 FUNCNEST 変 数 を 使 う と 、 関 数 の 呼 び 出 し ス タ ッ ク の 深 さ を 制 限 し 、 関 数 の 呼 び 出 し 回 数 を 制 限 す る こ と が で き ま す 。 デ フ ォ ル ト で は 再 帰 呼 び 出 し 回 数 に 制 限 は 課 せ ら れ て い ま せ ん 。

算 術 式 評 価

シ ェ ル に お い て は 、 特 定 の 状 況 下 で 算 術 式 を 評 価 さ せ る こ と が で き ま す (組 み 込 み コ マ ン ド の let算 術 式 展 開 を 参 照 )。 評 価 は 固 定 長 の 整 数 と し て 行 わ れ 、 オ ー バ ー フ ロ ー の チ ェ ッ ク は 行 わ れ ま せ ん 。 た だ し 、 0 で の 除 算 は ト ラ ッ プ さ れ 、 エ ラ ー と し て の フ ラ グ が 立 て ら れ ま す 。 演 算 子 と そ の 優 先 度 、 結 合 規 則 は C 言 語 と 同 じ で す 。 以 下 の リ ス ト は 、 同 じ 優 先 度 を 持 つ 演 算 子 を グ ル ー プ と し て ま と め て 列 挙 し た も の で す 。 優 先 度 の 高 い も の か ら 順 に 列 挙 し て い ま す 。

id++ id−− 変 数 を 評 価 し 、 そ の 後 increment (加 算 )/ decrement (減 算 ) す る 。
++
id −−id 変 数 を increment (加 算 ) / decrement (減 算 ) し て か ら 評 価 す る 。

− + 単 項 式 の 負 と 正

! ~ 論 理 的 否 定 と ビ ッ ト 単 位 の 否 定

** 指 数

(累 乗 )

* / % 乗 算 、 除 算 、 剰 余

+ − 加 算 と 減 算

<< >> 左 ビ ッ ト シ フ ト と 右 ビ ッ ト シ フ ト

<= >= < > 比 較

== != 等 値 と 非 等 値

& ビ ッ ト 単 位 の

AND

^ ビ ッ ト 単 位 の 排

他 的 OR
|
ビ ッ ト 単 位 の OR
&&
論 理 的

AND

|| 論 理 的

OR

expr?expr:expr 条 件 付 き 実 行
= *= /= %= += −= <<= >>= &= ^= |=
代 入
expr1
, expr2 コ ン マ シ ェ ル 変 数 を オ ペ ラ ン ド に す る こ と も で き ま す 。 パ ラ メ ー タ 展 開 は 式 の 評 価 よ り 前 に 行 わ れ ま す 。 式 の 中 で は 、 シ ェ ル 変 数 を (パ ラ メ ー タ 展 開 規 則 を 用 い ず に ) 変 数 名 で 参 照 で き ま す 。 値 が 空 の シ ェ ル 変 数 や 宣 言 さ れ て い な い シ ェ ル 変 数 は 、 パ ラ メ ー タ の 展 開 の 文 法 を 使 わ ず に 名 前 を 参 照 さ れ る と 、 0 と し て 評 価 さ れ ま す 。 変 数 の 値 は 、 変 数 が 参 照 さ れ た と き や 、 declare −i に よ っ て 整 数 属 性 が 設 定 さ れ た 変 数 に 値 が 代 入 さ れ る と き に 、 算 術 式 と し て 評 価 さ れ ま す 。 空 の 値 は 0 と し て 評 価 さ れ ま す 。 式 で 用 い る た め に シ ェ ル 変 数 の 整 数 属 性 を 有 効 に す る 必 要 は あ り ま せ ん 。 先 頭 が 0 で あ る 定 数 は 8 進 数 と し て 解 釈 さ れ ま す 。 先 頭 が 0x ま た は 0X な ら ば 16 進 数 と し て 解 釈 さ れ ま す 。 そ れ 以 外 の 場 合 に は 、 数 値 は [base#]n の 形 式 で 表 し ま す 。 こ こ で base は 2 か ら 64 の 間 の 10 進 数 で あ り 、 算 術 的 な 意 味 で の 基 数 を 表 し ま す 。 n は そ の 基 数 に お け る 数 を 表 し ま す 。 base# が 省 略 さ れ る と 10 進 数 と な り ま す 。 あ る 桁 に お い て 9 よ り 大 き い 数 字 を 表 す に は 文 字 を 使 い ま す 。 文 字 を 使 う 場 合 に は 、 ア ル フ ァ ベ ッ ト 小 文 字 、 大 文 字 、 @, _ を こ の 順 番 で 使 い ま す 。 base が 36 以 下 の 場 合 に は 、 大 文 字 と 小 文 字 は 区 別 さ れ ず 、 大 文 字 と 小 文 字 の ど ち ら を 使 っ て も 10 か ら 35 ま で の 数 字 を 表 現 で き ま す 。 演 算 子 は 優 先 度 の 順 に 評 価 さ れ ま す 。 括 弧 内 に あ る 部 分 式 は 最 初 に 評 価 さ れ 、 前 述 の 優 先 規 則 よ り も 優 先 さ せ る こ と が で き ま す 。

条 件 式

条 件 式 は 複 合 コ マ ン ド [[ と 組 み 込 み コ マ ン ド の test お よ び [ に よ っ て 使 用 で き 、 フ ァ イ ル の 属 性 を 調 べ た り 、 文 字 列 比 較 や 算 術 式 比 較 を 行 っ た り で き ま す 。 式 は 以 下 に 示 す 単 項 の プ ラ イ マ リ や 二 値 の プ ラ イ マ リ か ら 構 成 さ れ ま す 。 プ ラ イ マ リ の い ず れ か の file 引 き 数 が /dev/fd/n と い う 形 式 な ら ば 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー n が 調 べ ら れ ま す 。 プ ラ イ マ リ の い ず れ か の file 引 き 数 が /dev/stdin/dev/stdout/dev/stderr の い ず れ か で あ れ ば 、 対 応 す る フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0、 1、 2 が 調 べ ら れ ま す 。 ほ か に 指 定 さ れ て い な け れ ば 、 フ ァ イ ル に 対 す る プ ラ イ マ リ は シ ン ボ リ ッ ク リ ン ク を 辿 り 、 リ ン ク 自 身 で は な く リ ン ク 先 を 対 象 と し ま す 。

[[ で は <> の 演 算 子 は 現 在 の ロ ケ ー ル で の 辞 書 順 で 比 較 し ま す 。 test コ マ ン ド は ASCII 順 で 比 較 し ま す 。
−a
file

file が 存 在 す れ ば 真 と な り ま す 。

−b file

file が 存 在 し 、 か つ ブ ロ ッ ク 特 殊 フ ァ イ ル な ら ば 真 と な り ま す 。

−c file

file が 存 在 し 、 か つ キ ャ ラ ク タ ー 特 殊 フ ァ イ ル な ら ば 真 と な り ま す 。

−d file

file が 存 在 し 、 か つ デ ィ レ ク ト リ な ら ば 真 と な り ま す 。

−e file

file が 存 在 す れ ば 真 と な り ま す 。

−f file

file が 存 在 し 、 か つ 通 常 フ ァ イ ル な ら ば 真 と な り ま す 。

−g file

file が 存 在 し 、 か つ set−group−id さ れ て い れ ば 真 と な り ま す 。

−h file

file が 存 在 し 、 か つ シ ン ボ リ ッ ク リ ン ク な ら ば 真 と な り ま す 。

−k file

file が 存 在 し 、 か つ “sticky” ビ ッ ト が 設 定 さ れ て い れ ば 真 と な り ま す 。

−p file

file が 存 在 し 、 か つ 名 前 付 き パ イ プ (FIFO) な ら ば 真 と な り ま す 。

−r file

file が 存 在 し 、 か つ 読 み 込 み 可 能 な ら ば 真 と な り ま す 。

−s file

file が 存 在 し 、 か つ そ の サ イ ズ が 0 よ り 大 き け れ ば 真 と な り ま す 。

−t fd フ ァ イ ル ・ デ ィ ス ク リ プ タ ー

fd が オ ー プ ン さ れ て お り 、 か つ 端 末 を 参

照 し て い れ ば 真 と な り ま す 。

−u file

file が 存 在 し 、 か つ set−user−id ビ ッ ト が 設 定 さ れ て い れ ば 真 と な り ま す 。

−w file

file が 存 在 し 、 か つ 書 き 込 み 可 能 な ら ば 真 と な り ま す 。

−x file

file が 存 在 し 、 か つ 実 行 可 能 な ら ば 真 と な り ま す 。

−G file

file が 存 在 し 、 か つ (実 行 中 の シ ェ ル の ) 実 効 グ ル ー プ ID に 所 有 さ れ て い れ ば 真 と な り ま す 。

−L file

file が 存 在 し 、 か つ シ ン ボ リ ッ ク リ ン ク な ら ば 真 と な り ま す 。

−N file

file が 存 在 し 、 か つ 前 回 読 み 込 ま れ た 以 降 に 修 正 さ れ て い れ ば 真 と な り ま す 。

−O file

file が 存 在 し 、 か つ (実 行 中 の シ ェ ル の ) 実 効 ユ ー ザ ID に 所 有 さ れ て い れ ば 真 と な り ま す 。

−S file

file が 存 在 し 、 か つ ソ ケ ッ ト な ら ば 真 と な り ま す 。

file1 −ef file2

file1file2 と で デ バ イ ス 番 号 と i−ノ ー ド 番 号 が 同 じ な ら ば 真 と な り ま す 。

file1nt file2

file1 が (変 更 日 時 に 関 し て ) file2 よ り 新 し い か 、 file1 が 存 在 す る が file2 が 存 在 し な け れ ば 、 真 と な り ま す 。

file1ot file2

file1file2 よ り 古 い か 、 file2 が 存 在 す る の に file1 が 存 在 し な け れ ば 、 真 と な り ま す 。

−o optname シ ェ ル オ プ シ ョ ン optname が 有 効 な ら ば 真 と な り ま す 。 後 述 す る 組 み 込 み コ マ ン ド set に 対 す る オ プ シ ョ ン の 説 明 中 に あ る −o オ プ シ ョ ン を 参 照 し て く だ さ い 。
−v
varname シ ェ ル 変 数 varname が セ ッ ト さ れ て い る (値 が 代 入 さ れ て い る ) な ら ば 真 と な り ま す 。
−z
string

string の 長 さ が 0 な ら ば 真 と な り ま す 。

string

−n string

string の 長 さ が 0 で な け れ ば 真 と な り ま す 。

string1 == string2
string1
= string2 文 字 列 が 同 じ な ら ば 真 と な り ま す 。 POSIX に 準 拠 す る 形 で test コ マ ン ド を 使 う 場 合 に は = を 使 う 必 要 が あ り ま す 。
string1
!= string2

2 つ の 文 字 列 が 異 な れ ば 真 と な り ま す 。

string1 < string2 現 在 の ロ ケ ー ル に お い て 、 string1string2 よ り も 辞 書 順 で 前 に あ る 場 合 に 真 と な り ま す 。
string1
> string2 現 在 の ロ ケ ー ル に お い て 、 string1string2 よ り も 辞 書 順 で 後 に あ る 場 合 に 真 と な り ま す 。
arg1
OP arg2

OP −eq, −ne, −lt, −le, −gt, −ge. の い ず れ か で す 。 こ れ ら の 算 術 二 値 演 算 子 が 真 を 返 す の は そ れ ぞ れ 、 arg1arg2 に 対 し て 等 し い 場 合 、 等 し く な い 場 合 、 小 さ い 場 合 、 小 さ い か 等 し い 場 合 、 大 き い 場 合 、 大 き い か 等 し い 場 合 で す 。 arg1arg2 に は 、 正 ま た は 負 の 整 数 を 使 用 で き ま す 。

単 純 な コ マ ン ド の 展 開

単 純 な コ マ ン ド を 実 行 す る と 、 シ ェ ル は 以 下 に 示 す 展 開 、 代 入 、 リ ダ イ レ ク シ ョ ン を 左 か ら 右 の 順 で 実 行 し ま す 。

1. パ ー ザ が 変 数 代 入

(コ マ ン ド 名 の 前 に あ る も の ) ま た は リ ダ イ レ ク

シ ョ ン と 判 断 し た 単 語 は 、 保 存 さ れ て 後 で 処 理 さ れ ま す 。

2. 変 数 代 入 で も リ ダ イ レ ク シ ョ ン で も な い 単 語 が 展 開 さ れ ま す 。 も し 展 開 の 後 に 残 っ て い る 単 語 が あ れ ば 、 そ の 最 初 の 単 語 が コ マ ン ド 名 と な り 、 残 り が 引 き 数 と な り ま す 。

3. リ ダ イ レ ク シ ョ ン が 前 述 の リ ダ イ レ ク ト で 説 明 し た よ う に 実 行 さ れ ま す 。

4. 変 数 代 入 の

= の 後 に あ る テ キ ス ト に 対 し て 、 チ ル ダ 展 開 、 パ ラ メ ー タ 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 、 ク ォ ー ト 削 除 が 行 わ れ ま す 。 こ の 処 理 は 変 数 を 代 入 す る 前 に 行 わ れ ま す 。 コ マ ン ド 名 が 残 ら な か っ た 場 合 に は 、 変 数 を 代 入 し た 結 果 が 現 在 の シ ェ ル 環 境 に 効 果 を 及 ぼ し ま す 。 そ れ 以 外 の 場 合 、 変 数 は 実 行 さ れ る コ マ ン ド の 環 境 に 追 加 さ れ る だ け で 、 現 在 の シ ェ ル 環 境 に は 影 響 を 与 え ま せ ん 。 読 み 込 み 専 用 の 変 数 に 対 し て 代 入 を し よ う と す る と エ ラ ー が 発 生 し 、 そ の コ マ ン ド は 0 で な い ス テ ー タ ス で 終 了 し ま す 。 コ マ ン ド 名 が 残 ら な か っ た 場 合 、 リ ダ イ レ ク シ ョ ン は 行 わ れ ま す が 、 現 在 の シ ェ ル 環 境 は 影 響 を 受 け ま せ ん 。 リ ダ イ レ ク シ ョ ン の エ ラ ー が 起 き る と 、 コ マ ン ド は 0 で な い ス テ ー タ ス で 終 了 し ま す 。 展 開 の 後 に コ マ ン ド 名 が 残 っ て い る 場 合 、 後 述 す る よ う に 実 行 が 進 行 し ま す 。 そ う で な い 場 合 は コ マ ン ド は 終 了 し ま す 。 展 開 の い ず れ か が コ マ ン ド 置 換 で あ る 場 合 に は 、 コ マ ン ド の 終 了 ス テ ー タ ス は 最 後 に 実 行 さ れ た コ マ ン ド 置 換 の 終 了 ス テ ー タ ス に な り ま す 。 コ マ ン ド 置 換 が 行 わ れ な か っ た 場 合 に は 、 コ マ ン ド は ス テ ー タ ス 0 で 終 了 し ま す 。

コ マ ン ド の 実 行

コ マ ン ド が 単 語 に 分 割 さ れ た 後 に 、 単 純 な コ マ ン ド と そ れ に 対 す る 引 き 数 リ ス ト (引 き 数 リ ス ト は 省 略 可 能 ) と な っ た 場 合 、 以 下 の 動 作 が 行 わ れ ま す 。 コ マ ン ド 名 に ス ラ ッ シ ュ が 含 ま れ な い 場 合 、 シ ェ ル は コ マ ン ド の 位 置 を 特 定 し よ う と し ま す 。 そ の 名 前 の シ ェ ル 関 数 が 存 在 す れ ば 、 前 に 関 数 で 説 明 し た よ う に そ の 関 数 が 呼 び 出 さ れ ま す 。 名 前 が 関 数 に マ ッ チ し な い 場 合 に は 、 シ ェ ル は シ ェ ル の 組 み 込 み コ マ ン ド の リ ス ト を 探 し ま す 。 マ ッ チ す る も の が あ っ た 場 合 、 そ の 組 み 込 み コ マ ン ド が 呼 び 出 さ れ ま す 。 名 前 が シ ェ ル 関 数 も 組 み 込 み コ マ ン ド で な く 、 か つ ス ラ ッ シ ュ を 含 ま な い 場 合 に は 、 bashPATH の 各 要 素 を 検 索 し 、 そ の 名 前 の 実 行 フ ァ イ ル を 含 む デ ィ レ ク ト リ を 探 し ま す 。 bash は ハ ッ シ ュ 表 を 使 っ て 実 行 フ ァ イ ル の 完 全 な パ ス 名 を 記 憶 し ま す (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド hash の 項 を 参 照 )。 PATH に 含 ま れ る デ ィ レ ク ト リ の 完 全 な 探 索 は 、 そ の コ マ ン ド が ハ ッ シ ュ 表 の 中 に な い 場 合 に の み 行 わ れ ま す 。 探 索 に 失 敗 す る と 、 シ ェ ル は command_not_found_handle と い う 名 前 の シ ェ ル 関 数 の 定 義 を 探 し ま す 。 存 在 す る 場 合 に は 、 元 の コ マ ン ド と 元 の コ マ ン ド の 引 き 数 を 引 き 数 と し て 、 こ の 関 数 を 呼 び 出 し ま す 。 こ の 関 数 の 終 了 ス テ ー タ ス が シ ェ ル の 終 了 ス テ ー タ ス と な り ま す 。 こ の 関 数 が 定 義 さ れ て い な い 場 合 に は 、 シ ェ ル は エ ラ ー メ ッ セ ー ジ を 表 示 し て 終 了 ス テ ー タ ス 127 を 返 し ま す 。 検 索 に 成 功 し た か 、 コ マ ン ド 名 に 1 つ 以 上 の ス ラ ッ シ ュ が 含 ま れ る 場 合 に は 、 シ ェ ル は 指 定 さ れ た プ ロ グ ラ ム を 独 立 し た 実 行 環 境 で 実 行 し ま す 。 引 き 数 0 に は 指 定 さ れ た 名 前 が 設 定 さ れ 、 コ マ ン ド に 対 す る 残 り の 引 き 数 に は (も し あ れ ば ) 指 定 さ れ た 引 き 数 が 設 定 さ れ ま す 。 こ の フ ァ イ ル が 実 行 可 能 フ ォ ー マ ッ ト で な い た め に 実 行 が 失 敗 し 、 か つ デ ィ レ ク ト リ で も な い 場 合 に は 、 こ の フ ァ イ ル は シ ェ ル ス ク リ プ ト (shell script)で あ る と み な さ れ ま す 。 シ ェ ル ス ク リ プ ト と は 、 シ ェ ル の コ マ ン ド が 書 か れ て い る フ ァ イ ル の こ と で す 。 シ ェ ル ス ク リ プ ト を 実 行 す る た め に サ ブ シ ェ ル が 呼 び 出 さ れ ま す 。 こ の サ ブ シ ェ ル は 自 分 自 身 を 再 初 期 化 し 、 シ ェ ル ス ク リ プ ト を 処 理 す る た め に 新 し い シ ェ ル が 起 動 さ れ た か の よ う な 結 果 に な り ま す 。 た だ し 、 親 が 記 憶 し て い る コ マ ン ド の 位 置 (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド に お け る hash の 項 を 参 照 ) は 子 に も 引 き 継 が れ ま す 。 プ ロ グ ラ ム が #! で 始 ま る フ ァ イ ル で あ る 場 合 、 最 初 の 行 の 残 り の 部 分 は こ の プ ロ グ ラ ム の イ ン タ プ リ タ を 指 定 し ま す 。 シ ェ ル は 指 定 さ れ た イ ン タ プ リ タ を オ ペ レ ー テ ィ ン グ シ ス テ ム 上 で 実 行 し ま す 。 オ ペ レ ー テ ィ ン グ シ ス テ ム は 、 こ の 実 行 可 能 フ ォ ー マ ッ ト を 直 接 処 理 し ま せ ん 。 イ ン タ プ リ タ に 対 す る 引 き 数 は 、 プ ロ グ ラ ム の 先 頭 の 行 の イ ン タ プ リ タ 名 の 後 の 省 略 可 能 な 引 き 数 1 つ と 、 そ の 後 の プ ロ グ ラ ム 名 、 さ ら に (も し あ れ ば ) そ の 後 の コ マ ン ド へ の 引 き 数 か ら 構 成 さ れ ま す 。

コ マ ン ド 実 行 環 境

シ ェ ル は 以 下 の 要 素 か ら な る 実 行 環 境 (execution environment)を 持 ち ま す :

• 起 動 時 に そ の シ ェ ル が 継 承 し た オ ー プ ン さ れ て い る フ ァ イ ル 。 こ れ は 組 み 込 み コ マ ン ド

exec に 与 え ら れ て い る リ ダ イ レ ク シ ョ ン 機 能 で 変 更 さ れ ま す 。

• 現 在 の 作 業 デ ィ レ ク ト リ

(current working directory)。 こ れ は cd,

pushd, popd で 設 定 す る か 、 あ る い は 起 動 時 に そ の シ ェ ル が 継 承 し ま す 。

• フ ァ イ ル 作 成 モ ー ド の マ ス ク 。 こ れ は

umask で 設 定 す る か 、 あ る い は

そ の シ ェ ル の 親 か ら 継 承 し ま す 。

trap で 設 定 さ れ た 現 在 の ト ラ ッ プ 。

シ ェ ル の パ ラ メ ー タ 。 こ れ は 変 数 の 代 入 か set で 設 定 さ れ る か 、 あ る い は そ の 環 境 内 に あ る 親 シ ェ ル か ら 継 承 し ま す 。

実 行 中 に 定 義 さ れ る か 、 そ の 環 境 内 に あ る 親 シ ェ ル か ら 継 承 し た シ ェ ル 関 数 。

• 起 動 時 に 有 効 に し た か

(デ フ ォ ル ト 値 あ る い は コ マ ン ド ラ イ ン 引 き 数 で

設 定 し た 値 )、 set で 有 効 に し た オ プ シ ョ ン 。

shopt で 有 効 に し た オ プ シ ョ ン 。

alias で 定 義 し た シ ェ ル エ イ リ ア ス 。

各 種 プ ロ セ ス ID。 こ れ に は バ ッ ク グ ラ ウ ン ド ジ ョ ブ や $$ の 値 、 PPID の 値 が 含 ま れ ま す 。 組 み 込 み コ マ ン ド や シ ェ ル 関 数 以 外 の 単 純 な コ マ ン ド を 実 行 す る と き 、 こ の コ マ ン ド は 独 立 し た 実 行 環 境 内 で 呼 び 出 さ れ ま す 。 こ の 環 境 は 以 下 の 要 素 か ら 成 り 立 っ て い ま す 。 特 に 断 ら な い 限 り 、 こ の 値 は シ ェ ル か ら 引 き 継 が れ ま す 。

• シ ェ ル の オ ー プ ン し て い る フ ァ イ ル と 、 コ マ ン ド に 対 す る リ ダ イ レ ク シ ョ ン で 指 定 し た 変 更 ・ 追 加 を 加 え た も の 。

• 現 在 の 作 業 デ ィ レ ク ト リ

• フ ァ イ ル 作 成 モ ー ド の マ ス ク

• エ ク ス ポ ー ト す る シ ェ ル 変 数 や 関 数 と 、 そ の コ マ ン ド に 対 し て エ ク ス ポ ー ト さ れ た 変 数 。 こ れ ら は 環 境 で 渡 さ れ ま す 。

• シ ェ ル に 捕 捉 さ れ る ト ラ ッ プ は 、 そ の シ ェ ル の 親 か ら 継 承 さ れ た 値 に 再 設 定 さ れ ま す 。 そ の シ ェ ル に よ り 無 視 さ れ る ト ラ ッ プ は 無 視 さ れ ま す 。 こ の 独 立 の 環 境 内 で 呼 び 出 さ れ た コ マ ン ド が 、

(親 で あ る ) シ ェ ル の 実 行 環 境 に 影 響 を 及 ぼ す こ と は で き ま せ ん 。 コ マ ン ド 置 換 や 括 弧 で グ ル ー プ 化 さ れ た コ マ ン ド 、 非 同 期 コ マ ン ド は 、 サ ブ シ ェ ル 環 境 内 で 呼 び 出 さ れ ま す 。 こ の サ ブ シ ェ ル 環 境 は シ ェ ル 環 境 を 複 製 し た も の で す 。 た だ し 、 シ ェ ル に よ り 捕 捉 さ れ る ト ラ ッ プ は 、 そ の シ ェ ル の 起 動 時 に 親 か ら 継 承 し た 値 に 再 設 定 さ れ ま す 。 パ イ プ ラ イ ン の 一 部 と し て 起 動 さ れ た 組 み 込 み コ マ ン ド は 、 サ ブ シ ェ ル 環 境 で 実 行 さ れ ま す 。 サ ブ シ ェ ル 環 境 に 対 し て 行 わ れ た 変 更 は 、 元 の シ ェ ル 実 行 環 境 に 影 響 を 及 ぼ す こ と は で き ま せ ん 。 コ マ ン ド 置 換 を 実 行 す る た め に 起 動 さ れ た サ ブ シ ェ ル は 、 −e オ プ シ ョ ン の 値 を 親 シ ェ ル か ら 継 承 し ま す 。 posix モ ー ド で な い 場 合 、 bash は そ の サ ブ シ ェ ル で は −e オ プ シ ョ ン を ク リ ア し ま す 。 コ マ ン ド の 後 に & が 付 け ら れ た と き に 、 ジ ョ ブ 制 御 が 有 効 で な け れ ば 、 コ マ ン ド の デ フ ォ ル ト の 標 準 入 力 は 空 フ ァ イ ル /dev/null と な り ま す 。 そ う で な け れ ば 、 呼 び 出 さ れ た コ マ ン ド は 、 呼 び 出 し た シ ェ ル の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー を 、 リ ダ イ レ ク ト も 含 め て 継 承 し ま す 。

環 境

プ ロ グ ラ ム の 起 動 時 に は 、 環 境 (environment) と 呼 ば れ る 文 字 列 の 配 列 が 渡 さ れ ま す 。 こ れ は 変 数 名 の ペ ア か ら な る リ ス ト で 、 変 数 名 = と い う 形 に な り ま す 。 シ ェ ル は 、 環 境 を 操 作 す る 様 々 な 方 法 を 提 供 し て い ま す 。 起 動 時 に は 、 シ ェ ル は 自 分 自 身 の 環 境 を 調 べ 、 見 つ か っ た 名 前 そ れ ぞ れ に 対 し て パ ラ メ ー タ を 生 成 し 、 そ れ に 自 動 的 に 子 プ ロ セ ス へ の エ ク ス ポ ー ト (export) の 印 を 付 け ま す 。 実 行 さ れ た コ マ ン ド は 環 境 を 継 承 し ま す 。 export コ マ ン ド ま た は declare −x コ マ ン ド を 用 い る と 、 パ ラ メ ー タ や 関 数 の 追 加 と 削 除 を 環 境 に 対 し て 行 え ま す 。 環 境 内 の パ ラ メ ー タ の 値 が 変 更 さ れ る と 、 新 し い 値 は 環 境 の 一 部 と な り 、 古 い 値 と 置 き 換 わ り ま す 。 実 行 さ れ た コ マ ン ド が 継 承 す る 環 境 は 、 シ ェ ル の 最 初 の 環 境 か ら 、 変 数 の 値 が シ ェ ル 中 で 変 更 さ れ た り 、 一 部 の ペ ア が unset コ マ ン ド で 削 除 さ れ た り 、 export コ マ ン ド や declare −x コ マ ン ド で 追 加 さ れ た り し た も の に な り ま す 。 単 純 な コ マ ン ド や 関 数 に 対 す る 環 境 は 、 一 時 的 に 修 正 で き ま す 。 こ れ は 、 既 に パ ラ メ ー タ の 項 で 説 明 し た よ う に 、 パ ラ メ ー タ 代 入 を 前 に 置 く こ と で 行 い ま す 。 こ の よ う な 代 入 が 影 響 を 与 え る の は 、 そ の コ マ ン ド が 参 照 す る 環 境 だ け で す 。

−k オ プ シ ョ ン を 設 定 (後 述 の 組 み 込 み コ マ ン ド set を 参 照 ) す る と 、 コ マ ン ド 名 の 前 に 置 い た も の だ け で は な く 、 全 て の パ ラ メ ー タ 代 入 が そ の コ マ ン ド の 環 境 に 影 響 を 与 え ま す 。

bash が 外 部 コ マ ン ド を 起 動 し た と き に は 、 変 数 _ に は コ マ ン ド の 完 全 な フ ァ イ ル 名 が 設 定 さ れ 、 環 境 変 数 と し て そ の コ マ ン ド に 渡 さ れ ま す 。

終 了 ス テ ー タ ス

実 行 し た コ マ ン ド の 終 了 ス テ ー タ ス は 、 waitpid シ ス テ ム コ ー ル ま た は そ れ に 相 当 す る 関 数 が 返 し た 値 で す 。 終 了 ス テ ー タ ス は 0 か ら 255 の 値 を 取 り ま す が 、 後 述 す る よ う に 、 125 よ り 大 き い 値 は 特 別 に シ ェ ル に よ っ て 使 わ れ る こ と が あ り ま す 。 シ ェ ル の 組 み 込 み コ マ ン ド や 複 合 コ マ ン ド の 終 了 ス テ ー タ ス も 、 同 じ 範 囲 に 限 定 さ れ て い ま す 。 環 境 に よ っ て は 、 シ ェ ル は 仕 様 で 決 め ら れ た 失 敗 の モ ー ド を 表 す 特 別 の 値 を 使 い ま す 。 シ ェ ル は 、 終 了 コ ー ド 0 で 終 了 し た コ マ ン ド は 正 常 終 了 し た と み な し ま す 。 終 了 コ ー ド 0 は 成 功 を 示 し ま す 。 0 以 外 の 終 了 コ ー ド は 失 敗 を 示 し ま す 。 あ る コ マ ン ド が 致 命 的 な シ グ ナ ル N で 終 了 し た と き に は 、 bash は 「 128+N」 の 値 を 終 了 ス テ ー タ ス に 使 い ま す 。 コ マ ン ド が 見 つ か ら な か っ た 場 合 に は 、 そ の コ マ ン ド を 実 行 す る た め に 生 成 さ れ た 子 プ ロ セ ス が ス テ ー タ ス 127 を 返 し ま す 。 コ マ ン ド が 見 つ か っ た け れ ど 実 行 で き な か っ た 場 合 に は 、 ス テ ー タ ス は 126 で す 。 展 開 や リ ダ イ レ ク シ ョ ン の 際 に エ ラ ー が 発 生 し コ マ ン ド が 失 敗 し た 場 合 に は 、 0 よ り 大 き い 終 了 ス テ ー タ ス が 返 さ れ ま す 。 シ ェ ル の 組 み 込 み コ マ ン ド は 、 成 功 し た 場 合 に は ス テ ー タ ス 0 ( ) を 返 し 、 実 行 中 に エ ラ ー が 起 こ っ た 場 合 に は 0 で な い 値 ( ) を 返 し ま す 。 組 み 込 み コ マ ン ド は 全 て 、 正 し く な い 使 い 方 で あ る こ と を 示 す の に 終 了 ス テ ー タ ス 2 を 返 し ま す 。

bash 自 身 が 返 す 終 了 ス テ ー タ ス は 、 文 法 エ ラ ー が 起 き た 場 合 を 除 き 、 実 行 し た 最 後 の コ マ ン ド の 終 了 ス テ ー タ ス で す 。 文 法 エ ラ ー の 場 合 に は 0 で な い 値 が 終 了 ス テ ー タ ス と な り ま す 。 後 述 の 組 み 込 み コ マ ン ド exit も 参 照 し て く だ さ い 。

シ グ ナ ル

bash が 対 話 的 で あ り 、 ト ラ ッ プ が 全 く な い と き 、 bashSIGTERM を 無 視 し (し た が っ て kill 0 で は 対 話 シ ェ ル は kill さ れ ま せ ん )、 SIGINT を 捕 捉 し 処 理 し ま す (し た が っ て 組 み 込 み コ マ ン ド wait は 割 り 込 み 可 能 で す )。 ど ん な 場 合 で も 、 bashSIGQUIT を 無 視 し ま す 。 ジ ョ ブ 制 御 が 有 効 な 状 態 な ら ば 、 bashSIGTTIN, SIGTTOU, SIGTSTP を 無 視 し ま す 。

bash が 起 動 し た 外 部 コ マ ン ド は 、 シ ェ ル が 自 分 の 親 か ら 継 承 し た 値 を シ グ ナ ル ハ ン ド ラ に 設 定 し ま す 。 ジ ョ ブ 制 御 が 有 効 で な い と き に は 、 非 同 期 コ マ ン ド は 、 継 承 し た シ グ ナ ル ハ ン ド ラ に 加 え て SIGINT SIGQUIT も 無 視 し ま す 。 コ マ ン ド 置 換 の 結 果 と し て 実 行 さ れ た コ マ ン ド は 、 キ ー ボ ー ド で 生 成 さ れ た ジ ョ ブ 制 御 シ グ ナ ル を 無 視 し ま す 。 無 視 さ れ る シ グ ナ ル は SIGTTIN, SIGTTOU, SIGTSTP で す 。 デ フ ォ ル ト で は 、 シ ェ ル は SIGHUP を 受 け 取 る と 終 了 し ま す 。 終 了 す る 前 に は 、 シ ェ ル は 実 行 中 ・ 停 止 中 の 全 て の ジ ョ ブ に 対 し て SIGHUP を 再 送 信 し ま す 。 停 止 中 の ジ ョ ブ に は SIGCONT が 送 ら れ 、 こ の ジ ョ ブ が SIGHUP を 受 け 取 る よ う に し ま す 。 特 定 の ジ ョ ブ に 対 し て シ ェ ル か ら シ グ ナ ル が 送 ら れ な い よ う に す る た め に は 、 組 み 込 み コ マ ン ド disown (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) を 使 っ て 、 そ の ジ ョ ブ を ジ ョ ブ テ ー ブ ル か ら 削 除 す る か 、 あ る い は disown −h を 使 っ て 、 SIGHUP を 受 け 取 ら な い よ う に マ ー ク を 付 け ま す 。 シ ェ ル オ プ シ ョ ン の huponexitshopt を 使 っ て 設 定 さ れ て い た 場 合 、 対 話 的 な ロ グ イ ン シ ェ ル が 終 了 す る と き に 、 bashSIGHUP を 全 て の ジ ョ ブ に 送 り ま す 。 コ マ ン ド の 完 了 を 待 っ て い る 間 に 、 ト ラ ッ プ が 設 定 さ れ た シ グ ナ ル を bash が 受 け 取 っ た と き 、 そ の ト ラ ッ プ は コ マ ン ド が 完 了 す る ま で 実 行 さ れ ま せ ん 。 bash が 組 み 込 み コ マ ン ド の wait を 使 っ て 非 同 期 コ マ ン ド を 待 っ て い る と き に 、 ト ラ ッ プ が 設 定 さ れ て い る シ グ ナ ル を 受 け 取 る と 、 組 み 込 み コ マ ン ド wait は 即 座 に 復 帰 さ せ ら れ ま す 。 こ の 際 の 終 了 ス テ ー タ ス は 128 よ り 大 き い 値 に な り ま す 。 ま た 復 帰 す る の は ト ラ ッ プ が 実 行 さ れ た 直 後 で す 。

ジ ョ ブ 制 御

ジ ョ ブ 制 御 (job control) と は 、 プ ロ セ ス の 実 行 を 選 択 的 に 停 止 (サ ス ペ ン ド /suspend) さ せ 、 後 で 実 行 を 再 開 さ せ る (リ ジ ュ ー ム /resume) 機 能 の こ と で す 。 ユ ー ザ は 通 常 、 対 話 的 イ ン タ フ ェ ー ス を 通 し て こ の 機 能 を 利 用 し ま す 。 対 話 的 イ ン タ フ ェ ー ス は 、 オ ペ レ ー テ ィ ン グ シ ス テ ム の カ ー ネ ル の 端 末 ド ラ イ バ と bash の 組 み 合 わ せ で 提 供 さ れ ま す 。 シ ェ ル は パ イ プ ラ イ ン ご と に ジ ョ ブ (job) を 構 成 し ま す 。 シ ェ ル は 現 在 実 行 中 の ジ ョ ブ の テ ー ブ ル を 保 存 し て い ま す 。 こ の テ ー ブ ル は jobs コ マ ン ド を 使 っ て リ ス ト 表 示 で き ま す 。 bash が ジ ョ ブ を 非 同 期 的 に (バ ッ ク グ ラ ウ ン ド で ) 起 動 し た と き に は 、 bash は 以 下 の よ う な 行 を 出 力 し ま す :

[1] 25647 こ れ は 、 こ の ジ ョ ブ の ジ ョ ブ 番 号 は 1 で あ り 、 こ の ジ ョ ブ を 構 成 す る パ イ プ ラ イ ン 中 の 最 後 の プ ロ セ ス の ID が 25647 で あ る こ と を 示 し て い ま す 。 1 つ の パ イ プ ラ イ ン に 含 ま れ る 全 て の プ ロ セ ス は 同 じ ジ ョ ブ の メ ン バ で す 。 bash は 、 ジ ョ ブ 制 御 の 基 礎 と し て ジ ョ ブ と い う 抽 象 化 機 構 を 使 い ま す 。 ジ ョ ブ 制 御 の た め の ユ ー ザ イ ン タ フ ェ ー ス の 実 装 を 容 易 に す る た め に オ ペ レ ー テ ィ ン グ シ ス テ ム は 現 在 の 端 末 プ ロ セ ス の グ ル ー プ ID (current terminal process group ID) と い う 情 報 を 管 理 し て い ま す 。 こ の プ ロ セ ス グ ル ー プ の メ ン バ (プ ロ セ ス グ ル ー プ ID が 現 在 の 端 末 プ ロ セ ス の グ ル ー プ ID と 等 し い プ ロ セ ス ) は 、 SIGINT の よ う な 、 キ ー ボ ー ド で 生 成 さ れ た シ グ ナ ル を 受 け 取 り ま す 。 こ の よ う な プ ロ セ ス は フ ォ ア グ ラ ウ ン ド (foreground) に あ る と 言 わ れ ま す 。 バ ッ ク グ ラ ウ ン ド (background) プ ロ セ ス は 、 プ ロ セ ス の グ ル ー プ ID が 端 末 の グ ル ー プ ID と 異 な る プ ロ セ ス で す 。 こ の よ う な プ ロ セ ス は 、 キ ー ボ ー ド で 生 成 し た シ グ ナ ル の 影 響 を 受 け ま せ ん 。 フ ォ ア グ ラ ウ ン ド プ ロ セ ス だ け が 端 末 か ら の 読 み 込 み が 許 さ れ 、 stty tostop で 許 可 さ れ て い る 場 合 に は 出 力 も 許 さ れ ま す 。 バ ッ ク グ ラ ウ ン ド プ ロ セ ス が 端 末 か ら の 読 み 込 み (stty tostop が 有 効 な と き に は 端 末 へ の 書 き 込 み も ) を 行 お う と す る と 、 こ の プ ロ セ ス に は 端 末 ド ラ イ バ か ら SIGTTIN (SIGTTOU) シ グ ナ ル が 送 ら れ ま す 。 こ の シ グ ナ ル を 捕 捉 し な け れ ば 、 プ ロ セ ス は 停 止 し ま す 。

bash が 動 作 し て い る オ ペ レ ー テ ィ ン グ シ ス テ ム が ジ ョ ブ 制 御 を サ ポ ー ト し て い る な ら ば 、 ユ ー ザ は bash を 使 っ て ジ ョ ブ 制 御 を 行 え ま す 。 プ ロ セ ス の 動 作 中 に サ ス ペ ン ド 文 字 (通 常 は ^Z, Control−Z) を 打 ち 込 む と 、 そ の プ ロ セ ス は 停 止 さ せ ら れ 、 bash に 制 御 が 戻 り ま す 。 遅 延 サ ス ペ ン ド (delayed suspend) 文 字 (通 常 は ^Y, Control−Y) を 打 ち 込 む と 、 そ の プ ロ セ ス は 端 末 か ら 入 力 を 読 み 込 も う と し た と き に 停 止 さ せ ら れ 、 制 御 が bash に 戻 り ま す 。 こ の 時 点 で ユ ー ザ は こ の ジ ョ ブ の 状 態 を 操 作 で き ま す 。 利 用 で き る の は 、 バ ッ ク グ ラ ウ ン ド で 実 行 を 継 続 す る な ら ば bg コ マ ン ド 、 フ ォ ア グ ラ ウ ン ド で 実 行 を 継 続 す る な ら ば fg コ マ ン ド 、 プ ロ セ ス を kill す る な ら kill コ マ ン ド で す 。 ^Z の 効 果 は 即 座 に 現 わ れ る の で 、 未 出 力 の 出 力 や 先 行 入 力 し た 文 字 が 破 棄 さ れ る と い う 副 作 用 が あ り ま す 。 シ ェ ル 上 で ジ ョ ブ を 参 照 す る 方 法 は い ろ い ろ あ り ま す 。 文 字 % は ジ ョ ブ 名 (jobspec) の 始 ま り を 示 し ま す 。 ジ ョ ブ 番 号 n%n と し て 参 照 で き ま す 。 ジ ョ ブ の 参 照 に は 、 ジ ョ ブ を 起 動 す る と き に 使 っ た 名 前 の 先 頭 部 分 や コ マ ン ド ラ イ ン 中 に 現 わ れ る 部 分 文 字 列 を 使 う こ と も で き ま す 。 例 え ば 、 %ce は 停 止 中 の ジ ョ ブ ce を 指 し ま す 。 先 頭 の 部 分 が マ ッ チ す る ジ ョ ブ が 複 数 個 あ る 場 合 に は 、 bash は エ ラ ー を 報 告 し ま す 。 一 方 、 %?ce を 用 い る と 、 文 字 列 ce を コ マ ン ド ラ イ ン 中 に 含 む 任 意 の ジ ョ ブ を 参 照 で き ま す 。 部 分 文 字 列 が マ ッ チ す る ジ ョ ブ が 複 数 個 あ る 場 合 に は 、 bash は エ ラ ー を 報 告 し ま す 。 シ ン ボ ル %% お よ び %+ は 、 シ ェ ル が 覚 え て い る カ レ ン ト ジ ョ ブ (current job) を 指 し ま す 。 こ れ は 、 フ ォ ア グ ラ ウ ン ド で 起 動 さ れ て い る と き に 停 止 さ れ た か 、 バ ッ ク グ ラ ウ ン ド で 起 動 さ れ た 最 後 の ジ ョ ブ で す 。 前 の ジ ョ ブ (previous job)%− を 使 っ て 参 照 で き ま す 。 ジ ョ ブ が 一 つ し か な い 場 合 に は 、 %+%− の ど ち ら も 使 っ て も そ の ジ ョ ブ を 参 照 す る こ と が で き ま す 。 ジ ョ ブ に 関 す る 出 力 ( jobs コ マ ン ド の 出 力 な ど ) で は 、 カ レ ン ト ジ ョ ブ に は 必 ず + と い う フ ラ グ が 付 き 、 前 の ジ ョ ブ に は と い う フ ラ グ が 付 き ま す 。 ジ ョ ブ 名 が 付 い て い な い 単 独 の % も カ レ ン ト ジ ョ ブ を 示 し ま す 。 ジ ョ ブ の 名 前 だ け を 指 定 す る と 、 そ の ジ ョ ブ を フ ォ ア グ ラ ウ ン ド に 持 っ て き ま す 。 つ ま り 、 %1“fg %1” と 同 義 で あ り 、 ジ ョ ブ 1 を バ ッ ク グ ラ ウ ン ド か ら フ ォ ア グ ラ ウ ン ド に 持 っ て き ま す 。 同 様 に “%1 &” は ジ ョ ブ 1 を バ ッ ク グ ラ ウ ン ド で 実 行 再 開 さ せ ま す 。 こ れ は “bg %1” と 同 じ 意 味 で す 。 ジ ョ ブ の 状 態 が 変 わ る と 、 シ ェ ル は そ れ を 即 座 に 知 り ま す 。 通 常 、 bash が ジ ョ ブ の 状 態 変 化 を 報 告 す る の は 、 プ ロ ン プ ト を 出 力 す る 直 前 で す 。 こ れ は 他 の 出 力 を 妨 害 し な い た め で す 。 組 み 込 み コ マ ン ド set−b オ プ シ ョ ン が 指 定 さ れ て い る と 、 bash は ジ ョ ブ の 状 態 の 変 化 を 即 座 に 報 告 し ま す 。 子 プ ロ セ ス が 終 了 す る た び に SIGCHLD の ト ラ ッ プ が 実 行 さ れ ま す 。 ジ ョ ブ を 停 止 さ せ た ま ま で (checkjobs シ ェ ル オ プ シ ョ ン が 組 み 込 み コ マ ン ド shopt に よ り 有 効 に な っ て い る と き に は 実 行 中 で も ) bash を 終 了 (exit) さ せ よ う と す る と 、 シ ェ ル は 警 告 メ ッ セ ー ジ を 出 力 し ま す 。 checkjobs オ プ シ ョ ン が 有 効 の と き に は 、 ジ ョ ブ と そ の 状 態 を 一 覧 表 示 し ま す 。 こ の よ う な と き に は 、 jobs コ マ ン ド を 使 っ て ジ ョ ブ の 状 態 を 調 べ ら れ ま す 。 間 に コ マ ン ド を 挟 ま ず に bash を 再 び 終 了 さ せ よ う と す る と 、 シ ェ ル は 警 告 を 繰 り 返 さ な い で 、 停 止 中 の ジ ョ ブ を 終 了 さ せ ま す 。

プ ロ ン プ ト

対 話 的 に 動 作 し て い る 場 合 、 bash は コ マ ン ド を 読 む 込 み 準 備 が で き た と き に プ ラ イ マ リ プ ロ ン プ ト PS1 を 表 示 し 、 コ マ ン ド を 完 成 さ せ る た め に ま だ 入 力 が 必 要 な と き に セ カ ン ダ リ プ ロ ン プ ト PS2 を 表 示 し ま す 。 bash で は こ れ ら の プ ロ ン プ ト 文 字 列 を カ ス タ マ イ ズ で き ま す 。 こ の 際 に は バ ッ ク ス ラ ッ シ ュ で エ ス ケ ー プ さ れ た 各 種 特 殊 文 字 を 挿 入 で き 、 こ れ は 以 下 の よ う に デ コ ー ド さ れ ま す :

\a

ASCII の ベ ル 文 字 (07)

\d

"曜 日 月 日 " と い う 形 式 の 日 付 (例 : "Tue May 26")

\D{format}

formatstrftime(3) に 渡 さ れ 、 そ の 結 果 が プ ロ ン プ ト 文 字 列 に 挿 入 さ れ ま す 。 format が 空 の 場 合 に は (ブ レ ー ス は 必 要 )、 ロ ケ ー ル で 指 定 さ れ た 時 刻 表 記 に な り ま す 。

\e

ASCII の エ ス ケ ー プ 文 字 (033)

\h

ホ ス ト 名 の う ち 最 初 の ’.’ ま で の 部 分
\H
ホ ス ト 名
\j
シ ェ ル に よ っ て 現 在 管 理

さ れ て い る ジ ョ ブ の 数

\l シ ェ ル の 端 末 デ バ イ ス の ベ ー ス 名

(basename)

\n 改 行

(newline)

\r 復 帰

(carriage return)

\s シ ェ ル

の 名 前 。 つ ま り $0 の ベ ー ス 名 (最 後 の ス ラ ッ シ ュ 以 降 の 部 分 )
\t

24 時 間 制 の HH:MM:SS 形 式 の 現 在 の 時 刻

\T

12 時 間 制 の HH:MM:SS 形 式 の 現 在 の 時 刻

\@

12 時 間 制 の am/pm 形 式 の 現 在 の 時 刻

\A

12 時 間 制 の HH:MM 形 式 の 現 在 の 時 刻

\u

現 在 の ユ ー ザ の ユ ー ザ 名

\v

bash の バ ー ジ ョ ン (例 : 2.00)

\V

bash の リ リ ー ス 。 バ ー ジ ョ ン に パ ッ チ レ ベ ル を 加 え た も の (例 : 2.00.0)

\w

現 在 の 作 業 デ ィ レ ク ト リ 。 $HOME の 部 分 は チ ル ダ に 短 縮 さ れ ま す 。 PROMPT_DIRTRIM の 値 が 適 用 さ れ ま す 。

\W

現 在 の 作 業 デ ィ レ ク ト リ の ベ ー ス 名 $HOME の 部 分 は チ ル ダ に 短 縮 さ れ ま す 。
\!

こ の コ マ ン ド の 履 歴 番 号

\# こ の コ マ ン ド の コ マ ン ド 番 号

\$ 実 効

UID が 0 の 場 合 に #、 そ れ 以 外 の 場 合 は $

\nnn

8進 数 nnn に 対 応 す る 文 字

\\

バ ッ ク ス ラ ッ シ ュ

\[ 非 表 示 文 字 の シ ー ケ ン ス の 開 始 。 こ れ を 使 う と 、 プ ロ ン プ ト 中 に 端 末 の 制 御 シ ー ケ ン ス を 埋 め 込 む こ と が で き ま す 。

\] 非 表 示 文 字 の シ ー ケ ン ス を 終 了 し ま す 。 コ マ ン ド 番 号 と 履 歴 番 号 は 異 な る の が 普 通 で す : コ マ ン ド の 履 歴 番 号 と は 履 歴 リ ス ト 内 で の 位 置 で す 。 履 歴 リ ス ト は 履 歴 フ ァ イ ル か ら 読 み 込 め ま す

(後 述 の 履 歴 を 参 照 )。 一 方 、 コ マ ン ド 番 号 は 、 現 在 の シ ェ ル の セ ッ シ ョ ン 中 に 実 行 さ れ た 一 連 の コ マ ン ド の 列 に お け る 位 置 で す 。 こ の 文 字 列 が デ コ ー ド さ れ た 後 、 さ ら に パ ラ メ ー タ 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 、 ク ォ ー ト 削 除 が 適 用 さ れ ま す 。 展 開 は シ ェ ル オ プ シ ョ ン promptvars (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド の 項 に あ る shopt コ マ ン ド の 説 明 を 参 照 ) の 値 に 基 づ い て 行 わ れ ま す 。

READLINE ラ イ ブ ラ リ

readline は 対 話 シ ェ ル を 使 う と き に 入 力 の 読 み 込 み を 処 理 す る ラ イ ブ ラ リ で す 。 た だ し 、 シ ェ ル の 起 動 時 に −−noediting オ プ シ ョ ン が 指 定 さ れ た 場 合 に は 使 わ れ ま せ ん 。 行 編 集 は 組 み 込 み コ マ ン ド read−e オ プ シ ョ ン を 指 定 し た と き に も 使 わ れ ま す 。 デ フ ォ ル ト で は 、 行 編 集 に 使 う コ マ ン ド は emacs の コ マ ン ド に 似 て い ま す 。 vi 形 式 の 行 編 集 イ ン タ フ ェ ー ス も 使 え ま す 。 行 編 集 は 、 組 み 込 み コ マ ン ド set (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) に −o emacs−o vi オ プ シ ョ ン を 指 定 す る こ と で 、 い つ で も 有 効 に で き ま す 。 シ ェ ル を 起 動 し た 後 に 行 編 集 機 能 を 無 効 に す る に は 、 組 み 込 み コ マ ン ド set に 対 し て +o emacs オ プ シ ョ ン ま た は +o vi オ プ シ ョ ン を 設 定 し て く だ さ い 。

Readline の 記 法 こ の セ ク シ ョ ン で は 、 emacs 形 式 の 記 法 を 使 っ て キ ー ス ト ロ ー ク を 表 し ま す 。 コ ン ト ロ ー ル キ ー は C−key で 表 し ま す (例 : C−n は Control−N の 意 味 で す )。 同 様 に メ タ キ ー は M−key で 表 す の で 、 M−x は Meta−X を 表 す こ と に な り ま す 。 (メ タ キ ー が な い キ ー ボ ー ド で は 、 M−x は ESC x を 表 し ま す 。 つ ま り 、 エ ス ケ ー プ キ ー を 押 し た 後 に x キ ー を 押 し ま す 。 こ れ は ESC を メ タ プ レ フ ィ ッ ク ス (meta prefix) に す る 操 作 で す 。 M−C−x の 組 み 合 わ せ は 、 ESC−Control−x つ ま り 、 エ ス ケ ー プ キ ー を 押 し た 後 に 、 コ ン ト ロ ー ル キ ー を 押 し た ま ま x を 押 す こ と を 意 味 し ま す 。 )

Readline の コ マ ン ド に は 数 値 の 引 き 数 を 指 定 で き ま す 。 通 常 こ れ は 繰 り 返 し の 回 数 と し て 作 用 し ま す 。 た だ し 、 場 合 に よ っ て は 、 引 き 数 の 符 号 が 意 味 を 持 つ こ と も あ り ま す 。 順 方 向 に 作 用 す る コ マ ン ド (例 : kill−line) に 負 の 引 き 数 を 渡 す と 、 コ マ ン ド は 逆 方 向 に 作 用 し ま す 。 引 き 数 を 指 定 し た 場 合 の 動 作 が こ の 説 明 と 異 な る コ マ ン ド に つ い て は 後 で 説 明 し ま す 。 コ マ ン ド が テ キ ス ト を キ ル (kill) す る と 説 明 さ れ て い る と き は 、 削 除 さ れ た テ キ ス ト は 、 後 で 取 り 出 せ る (ヤ ン ク (yank) で き る ) よ う に 保 存 さ れ ま す 。 キ ル さ れ た テ キ ス ト は 、 キ ル リ ン グ (kill ring) に 保 存 さ れ ま す 。 連 続 し て キ ル を 行 う と 、 テ キ ス ト は 1 つ の ま と ま り と し て 保 存 さ れ る の で 、 全 部 を 一 度 に ヤ ン ク で き ま す 。 テ キ ス ト を キ ル し な い コ マ ン ド が 挟 ま る と 、 キ ル リ ン グ 上 の テ キ ス ト が 分 離 さ れ ま す 。

Readline の 初 期 化
readline を カ ス タ マ イ ズ す る に は 、 コ マ ン ド を 初 期 化 フ ァ イ ル (inputrc フ ァ イ ル ) に 追 加 し ま す 。 こ の フ ァ イ ル の 名 前 は 、 変 数 INPUTRC の 値 か ら 決 ま り ま す 。 こ の 変 数 が 設 定 さ れ て い な い 場 合 の デ フ ォ ル ト 値 は ~/.inputrc で す 。 readline ラ イ ブ ラ リ を 使 う プ ロ グ ラ ム が 起 動 す る 際 に は 、 こ の 初 期 化 フ ァ イ ル が 読 み 込 ま れ 、 キ ー 割 り 当 て と 変 数 が 設 定 さ れ ま す 。 readline の 初 期 化 フ ァ イ ル 中 で 使 用 で き る 基 本 的 構 文 は 、 以 下 の よ う に 少 し し か あ り ま せ ん 。 空 行 は 無 視 さ れ ま す 。 # で 始 ま る 行 は コ メ ン ト で す 。 $ で 始 ま る 行 は 条 件 文 で す 。 そ れ 以 外 の 行 は キ ー 割 り 当 て と 変 数 の 設 定 で す 。 デ フ ォ ル ト の キ ー 割 り 当 て は inputrc フ ァ イ ル で 変 更 で き ま す 。 こ の ラ イ ブ ラ リ を 使 う 他 の プ ロ グ ラ ム か ら も 、 独 自 の コ マ ン ド と キ ー 割 り 当 て を 追 加 で き ま す 。 例 え ば 、

M−Control−u: universal−argument ま た は
C−Meta−u: universal−argument を inputrc フ ァ イ ル に 書 く と 、 M−C−u で readline の universal−argument コ マ ン ド が 実 行 さ れ る よ う に な り ま す 。 以 下 に 示 す シ ン ボ ル 名 を 使 う こ と が で き ま す : RUBOUT, DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE, TAB

readline で は 、 キ ー に は コ マ ン ド 名 だ け で な く 文 字 列 を 割 り 当 て る こ と も で き 、 そ の 場 合 に は 、 そ の キ ー が 押 さ れ る と 割 り 当 て ら れ た 文 字 列 が 挿 入 さ れ ま す (マ ク ロ )。

Readline の キ ー 割 り 当 て
inputrc
フ ァ イ ル に お け る 制 御 キ ー の 割 り 当 て 方 は 単 純 で す 。 必 要 な も の は 、 コ マ ン ド 名 あ る い は マ ク ロ の 文 字 列 と 、 こ れ ら が 割 り 当 て ら れ る キ ー シ ー ケ ン ス だ け で す 。 名 前 は 2 通 り の 方 法 で 指 定 で き ま す 。 つ ま り 、 シ ン ボ リ ッ ク な キ ー の 名 前 (た い て い は 、 Meta−Control− プ レ フ ィ ッ ク ス と 組 み 合 わ せ て 使 わ れ る ) に よ る 指 定 と 、 キ ー シ ー ケ ン ス に よ る 指 定 で す 。 「 keyname:function−name」 あ る い は 「 keyname:macro」 の 形 式 を 使 う と き に は 、 keyname は 英 語 で 書 き 下 し た キ ー の 名 前 と な り ま す 。 例 を 以 下 に 示 し ま す :

Control−u: universal−argument
Meta−Rubout: backward−kill−word
Control−o: "> output" こ の 例 で は 、 C−uuniversal−argument に 、 M−DELbackward−kill−word に 割 り 当 て ら れ ま す 。 ま た 、 C−o は マ ク ロ の 実 行 に 割 り 当 て ら れ 、 右 辺 値 に 展 開 さ れ ま す (つ ま り 、 テ キ ス ト ’’> output’’ が 編 集 行 に 挿 入 さ れ ま す )。 後 者 の 形 式 で あ る 「 "keyseq":function−name」 ま た は 「 "keyseq":macro」 に お い て は 、 keyseq は 先 程 の keyname と は 異 な り 、 ダ ブ ル ク ォ ー ト で 括 っ て キ ー シ ー ケ ン ス 全 体 を 示 す 文 字 列 を 表 記 し て い ま す 。 以 下 の 例 で 示 す よ う に 、 GNU Emacs 形 式 の キ ー エ ス ケ ー プ の 一 部 を 使 え ま す 。 た だ し シ ン ボ リ ッ ク な 文 字 名 は 認 識 さ れ ま せ ん 。

"\C−u": universal−argument
"\C−x\C−r": re−read−init−file
"\e[11~": "Function Key 1" こ の 例 で も 、 C−uuniversal−argument 機 能 に 割 り 当 て ら れ て い ま す 。 C−x C−rre−read−init−file 機 能 に 割 り 当 て ら れ 、 ESC [ 1 1 ~ は ’’Function Key 1’’ と い う 文 字 列 の 挿 入 に 割 り 当 て ら れ て い ま す 。

GNU Emacs 形 式 の エ ス ケ ー プ シ ー ケ ン ス を 以 下 に 全 て 示 し ま す :

\C− コ ン ト ロ ー ル プ レ フ ィ ッ ク ス

\M− メ タ プ レ フ ィ ッ ク ス

\e エ ス ケ ー プ 文 字

\\ バ ッ ク ス ラ ッ シ ュ

\"

" と い う 文 字

\'

' と い う 文 字

GNU Emacs 形 式 の エ ス ケ ー プ シ ー ケ ン ス に 加 え て 、 別 形 式 の バ ッ ク ス ラ ッ シ ュ エ ス ケ ー プ も 使 え ま す :

\a 警 告

(ベ ル )

\b バ ッ ク

ス ペ ー ス

\d 削 除

(delete)

\f フ ォ ー

ム フ ィ ー ド

\n 改 行

(newline)

\r 復 帰

(carriage return)

\t 水 平 タ

\v 垂 直 タ ブ

\nnn

8 進 値 が nnn で あ る 8 ビ ッ ト 文 字 (1 文 字 に つ き 数 字 1〜 3 桁 )

\xHH

16 進 値 が HH で あ る 8 ビ ッ ト 文 字 (16 進 で 1〜 2 桁 )。

マ ク ロ の テ キ ス ト を 入 力 す る 際 に は 、 マ ク ロ 定 義 を 示 す た め に シ ン グ ル ク ォ ー ト や ダ ブ ル ク ォ ー ト を 使 わ な け れ ば な り ま せ ん 。 ク ォ ー ト さ れ て い な い テ キ ス ト は 関 数 名 と み な さ れ ま す 。 マ ク ロ 本 体 で は 、 前 述 の バ ッ ク ス ラ ッ シ ュ に よ る エ ス ケ ー プ は 展 開 さ れ ま す 。 バ ッ ク ス ラ ッ シ ュ は マ ク ロ の テ キ ス ト 内 の 他 の 文 字 を 全 て エ ス ケ ー プ し ま す 。 こ れ に は " や ' も 含 ま れ ま す 。

bash で は 、 組 み 込 み コ マ ン ド の bind を 使 っ て 、 readline の 現 在 の キ ー 割 り 当 て の 表 示 と 変 更 を 行 え ま す 。 ま た 、 組 み 込 み コ マ ン ド set に 対 し て −o オ プ シ ョ ン を 使 え ば 、 編 集 モ ー ド を 対 話 的 利 用 の 途 中 に 切 り 替 え 可 能 で す (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。

Readline の 変 数
Readline に は 、 動 作 を 細 か く カ ス タ マ イ ズ す る た め に 変 数 が あ り ま す 。 変 数 は inputrc フ ァ イ ル 中 に

set variable−name value と い う 形 式 の 文 で 設 定 で き ま す 。 特 に 断 ら な い 限 り 、 readline の 変 数 が と る 値 は OnOff の い ず れ か で す 。 大 文 字 と 小 文 字 の 違 い は 考 慮 し ま せ ん 。 認 識 で き な い 変 数 名 は 無 視 さ れ ま す 。 変 数 の 値 を 読 み 取 る と き 、 設 定 さ れ て な い 場 合 や 、 空 文 字 列 、 "on" (大 文 字 と 小 文 字 は 区 別 し な い )、 "1" は On と み な さ れ ま す 。 そ れ 以 外 の 値 は Off と み な さ れ ま す 。 変 数 と そ の デ フ ォ ル ト 値 を 以 下 に 示 し ま す :

bell−style (audible)

readline が 端 末 の ベ ル を 鳴 ら そ う と し た と き の 動 作 を 制 御 し ま す 。 none が 設 定 さ れ て い る 場 合 は 、 readline は ベ ル を 鳴 ら し ま せ ん 。 visible が 設 定 さ れ て い る 場 合 に は 、 可 能 で あ れ ば 可 視 ベ ル (visible bell) が 用 い ら れ ま す 。 audible が 設 定 さ れ て い る 場 合 に は 、 readline は 端 末 の ベ ル を 鳴 ら そ う と し ま す 。

bind−tty−special−chars (On)

On が 設 定 さ れ て い る と 、 カ ー ネ ル の 端 末 ド ラ イ バ に よ っ て 特 別 扱 い さ れ る コ ン ト ロ ー ル 文 字 の 機 能 の 代 わ り に readline の 同 等 の 機 能 を 割 り 当 て よ う と し ま す 。

comment−begin (“#”)

readline の insert−comment コ マ ン ド が 実 行 さ れ た と き に 挿 入 さ れ る 文 字 列 で す 。 こ の コ マ ン ド は emacs モ ー ド で は M−# に 割 り 当 て ら れ 、 vi コ マ ン ド モ ー ド で は # に 割 り 当 て ら れ ま す 。

completion−ignore−case (Off)

On が 設 定 さ れ て い る と 、 readline が フ ァ イ ル 名 の マ ッ チ ン グ と 補 完 を 行 う 際 に 大 文 字 と 小 文 字 が 区 別 さ れ ま せ ん 。

completion−prefix−display−length (0) 補 完 候 補 の リ ス ト で そ の ま ま 表 示 さ れ る 共 通 先 頭 部 分 の 文 字 数 。 0 よ り 大 き い 値 が 設 定 さ れ る と 、 補 完 候 補 を 表 示 す る と き に 、 こ の 値 よ り 長 い 共 通 先 頭 部 分 は 省 略 記 号 で 置 き 換 え ら れ ま す
completion−query−items (100)

possible−completions コ マ ン ド が 生 成 し た 補 完 候 補 の 数 が 、 い く つ を 越 え る と 表 示 の 可 否 を ユ ー ザ に 問 い 合 わ せ る の か を 決 め ま す 。 こ の 変 数 に は 0 以 上 の 任 意 の 整 数 を 設 定 で き ま す 。 補 完 の 候 補 数 が こ の 変 数 の 値 以 上 の 場 合 に は 、 ユ ー ザ に 対 し て 候 補 を 表 示 す る か ど う か の 問 い 合 わ せ が な さ れ ま す 。 そ う で な い 場 合 に は 、 単 に 端 末 に 補 完 の 候 補 が リ ス ト 表 示 さ れ ま す 。

convert−meta (On)

On を 設 定 す る と 、 readline は 8 番 目 の ビ ッ ト が セ ッ ト さ れ て い る 文 字 を ASCII の キ ー シ ー ケ ン ス に 変 換 し ま す 。 変 換 は 、 8 番 目 の ビ ッ ト を 落 と し て 、 エ ス ケ ー プ 文 字 を 前 に 追 加 す る こ と に よ っ て 行 い ま す (実 際 に は エ ス ケ ー プ 文 字 を メ タ プ レ フ ィ ッ ク ス と し て 用 い ま す )。

disable−completion (Off)

On を 設 定 す る と 、 readline は 単 語 の 補 完 を 行 わ な く な り ま す 。 補 完 さ れ る 文 字 の 編 集 行 へ の 挿 入 は 、 そ の 文 字 を self−insert に 割 り 当 て た か の よ う に 行 わ れ ま す 。

editing−mode (emacs)

readline の 起 動 時 に emacsvi の ど ち ら に 似 た キ ー 割 り 当 て を 使 う の か を 制 御 し ま す 。 editing−mode に は emacsvi の い ず れ か を 指 定 で き ま す 。

echo−control−characters (On)

On が 設 定 さ れ て い る と 、 サ ポ ー ト し て い る OS で は 、 キ ー ボ ー ド 操 作 で シ グ ナ ル が 起 こ さ れ た と き に 相 当 す る 文 字 を 画 面 に 出 力 し ま す 。

enable−keypad (Off)

On を 設 定 す る と 、 readline は 呼 び 出 さ れ た と き に ア プ リ ケ ー シ ョ ン キ ー パ ッ ド を 有 効 に し よ う と し ま す 。 一 部 の シ ス テ ム で は 、 矢 印 キ ー を 使 う た め に こ れ を 有 効 に す る 必 要 が あ り ま す 。

enable−meta−key (On)

On が 設 定 さ れ て い る と 、 readline は 端 末 が サ ポ ー ト を 要 求 す る メ タ 修 飾 キ ー を 有 効 に し よ う と し ま す 。 多 く の 端 末 で は 、 メ タ キ ー は 8 ビ ッ ト 文 字 を 送 信 す る の に 使 わ れ ま す 。

expand−tilde (Off)

On を 設 定 す る と 、 readline が 単 語 の 補 完 を 試 み る と き に チ ル ダ 展 開 が 行 わ れ ま す 。

history−preserve−point (Off)

On が 設 定 さ れ て い る と 、 previous−historynext−history で 履 歴 行 を 取 り 出 し た と き に 、 ポ イ ン ト を 行 内 の 同 じ 位 置 に 置 こ う と し ま す 。

history−size (0) 履 歴 リ ス ト に 保 存 す る 履 歴 エ ン ト リ の 最 大 数 を 設 定 す る 。 0 が 設 定 さ れ て い る と 、 履 歴 リ ス ト の エ ン ト リ の 数 は 制 限 さ れ ま せ ん 。
horizontal−scroll−mode (Off)

On が 設 定 さ れ て い る と 、 readline は 表 示 の 際 に 1 行 し か 使 わ な い よ う に な り ま す 。 つ ま り 、 行 が ス ク リ ー ン の 幅 よ り 長 く な る と 、 新 し い 行 に 折 り 返 す の で は な く 、 1 つ の 入 力 行 の 中 で 横 に ス ク ロ ー ル し ま す 。

input−meta (Off)

On が 設 定 さ れ て い る と 、 readline は 8 ビ ッ ト の 入 力 が 可 能 に な り ま す (つ ま り 、 読 み 込 ん だ 文 字 の 再 上 位 ビ ッ ト を 落 と し ま せ ん )。 こ の 動 作 は 、 端 末 の サ ポ ー ト と は 無 関 係 に 行 わ れ ま す 。 meta−flag と い う 名 前 は 、 こ の 変 数 の 別 名 で す 。

isearch−terminators (“C−[C−J”) イ ン ク リ メ ン タ ル 検 索 を 終 了 さ せ る 文 字 か ら な る 文 字 列 で す (終 了 後 に そ の 文 字 が コ マ ン ド と し て 実 行 さ れ る こ と も あ り ま せ ん )。 こ の 変 数 に 値 が 設 定 さ れ て い な け れ ば 、 ESCC−J で イ ン ク リ メ ン タ ル 検 索 が 終 わ り ま す 。
keymap (emacs)
現 在 の readline の キ ー マ ッ プ を 設 定 し ま す 。 有 効 な キ ー マ ッ プ 名 は 、 emacs, emacs−standard, emacs−meta, emacs−ctlx, vi, vi−command, .IR vi−insert で す 。 vivi−command と 等 価 で 、 emacsemacs−standard と 等 価 で す 。 デ フ ォ ル ト 値 は emacs で す 。 editing−mode の 値 も デ フ ォ ル ト キ ー マ ッ プ に 影 響 を 与 え ま す 。
mark−directories (On)

On が 設 定 さ れ て い る と 、 補 完 さ れ た デ ィ レ ク ト リ 名 の 末 尾 に ス ラ ッ シ ュ が 追 加 さ れ ま す 。

mark−modified−lines (Off)

On が 設 定 さ れ て い る と 、 履 歴 行 を 表 示 す る 際 に 、 以 前 に 変 更 さ れ た も の の 先 頭 に ア ス タ リ ス ク (*) を 付 け て 表 示 し ま す 。

mark−symlinked−directories (Off)

On が 設 定 さ れ て い る と 、 デ ィ レ ク ト リ へ の シ ン ボ リ ッ ク リ ン ク が 補 完 さ れ た と き に 、 (mark−directories が 有 効 で あ れ ば ) 名 前 の 末 尾 に ス ラ ッ シ ュ が 追 加 さ れ ま す 。

match−hidden−files (On)

On が 設 定 さ れ て い る と 、 フ ァ イ ル 名 の 補 完 で ’.’ で 始 ま る 名 前 の フ ァ イ ル (隠 し フ ァ イ ル ) に も マ ッ チ し ま す 。 Off が 設 定 さ れ て い る と き に は 、 ’.’ で 始 ま る 名 前 の フ ァ イ ル を 補 完 す る に は 先 頭 の ’.’ を ユ ー ザ が 入 力 す る 必 要 が あ り ま す 。

menu−complete−display−prefix (Off)

On が 設 定 さ れ て い る と 、 メ ニ ュ ー 補 完 (menu completion) で 補 完 候 補 の リ ス ト (空 の 場 合 も 含 む ) を 順 番 に 表 示 す る 前 に 、 共 通 先 頭 部 分 を 表 示 し ま す 。

output−meta (Off)

On が 設 定 さ れ て い る と 、 readline は 8 番 目 の ビ ッ ト が 立 っ て い る 文 字 を 直 接 表 示 し ま す 。 メ タ 文 字 を 前 置 し た エ ス ケ ー プ シ ー ケ ン ス で の 表 示 は 行 い ま せ ん 。

page−completions (On)

On が 設 定 さ れ て い る と 、 一 度 に 一 画 面 分 の 補 完 候 補 を 表 示 す る た め に readline は 組 み 込 み の more 風 ペ ー ジ ャ を 使 い ま す 。

print−completions−horizontally (Off)

On が 設 定 さ れ て い る と 、 readline は 補 完 で マ ッ チ す る も の を ア ル フ ァ ベ ッ ト 順 に し て 、 縦 方 向 で は な く 横 方 向 に 並 べ て 表 示 し ま す 。

revert−all−at−newline (Off)

On が 設 定 さ れ て い る と 、 accept−line が 実 行 さ れ て readline か ら 戻 る と き に 、 履 歴 に 加 え ら れ た 全 て の 変 更 を 元 に 戻 し ま す 。 デ フ ォ ル ト で は 、 readline の 各 呼 び 出 し を 通 じ て 履 歴 行 が 変 更 さ れ 単 一 の ア ン ド ゥ リ ス ト が 保 持 さ れ ま す 。

show−all−if−ambiguous (Off) こ れ は 補 完 機 能 の デ フ ォ ル ト の 挙 動 を 変 え ま す 。 On が 設 定 さ れ て い る 場 合 、 単 語 に 対 す る 補 完 候 補 が 複 数 個 あ る と 、 ベ ル は 鳴 ら さ れ ず に 、 マ ッ チ す る も の が 即 座 に リ ス ト 表 示 さ れ ま す 。
show−all−if−unmodified (Off)
こ れ は show−all−if−ambiguous と 同 様 に 補 完 機 能 の デ フ ォ ル ト の 挙 動 を 変 え ま す 。 On が 設 定 さ れ て い る 場 合 、 単 語 に 対 す る 補 完 候 補 が 複 数 個 あ っ て 、 部 分 的 な 補 完 が で き な い (補 完 候 補 が 共 通 先 頭 部 分 を 持 た な い ) と 、 マ ッ チ す る も の が 即 座 に リ ス ト 表 示 さ れ ま す 。 ベ ル は 鳴 ら さ れ ま せ ん 。
skip−completed−text (Off)

On が 設 定 さ れ て い る と 、 こ れ は 補 完 機 能 が マ ッ チ し た も の を 行 に 挿 入 す る と き の デ フ ォ ル ト の 挙 動 を 変 え ま す 。 単 語 の 途 中 で 補 完 を 実 行 し た と き に だ け 意 味 が あ り ま す 。 有 効 に な っ て い る と 、 readline は 、 単 語 の カ ー ソ ル 以 後 の 部 分 が 重 複 し な い よ う に 、 補 完 さ れ た 単 語 の う ち ポ イ ン ト 以 後 の 文 字 を 挿 入 し ま せ ん 。

visible−stats (Off)

On が 設 定 さ れ て い る と 、 stat(2) で 得 ら れ る フ ァ イ ル の 種 類 を 表 す 文 字 が 、 補 完 候 補 の リ ス ト 表 示 の 際 に 追 加 さ れ ま す 。

Readline の 条 件 構 文
Readline に は 、 C 言 語 の プ リ プ ロ セ ッ サ の 条 件 付 き コ ン パ イ ル 機 能 と 似 た コ ン セ プ ト に 基 づ く 機 能 が 実 装 さ れ て い ま す 。 こ れ を 使 う と 、 条 件 に 応 じ て キ ー 割 り 当 て や 変 数 の 設 定 を 実 行 で き ま す 。 パ ー ザ デ ィ レ ク テ ィ ブ は 4 つ あ り ま す 。

$if

$if 構 文 を 使 う と 、 編 集 モ ー ド や 使 用 中 の 端 末 、 readline を 使 っ て い る ア プ リ ケ ー シ ョ ン に 応 じ た 割 り 当 て を 行 え ま す 。 行 末 ま で の 全 テ キ ス ト が 評 価 対 象 と な り ま す 。 こ れ を 分 離 す る に は 文 字 は 必 要 あ り ま せ ん 。

mode

$if デ ィ レ ク テ ィ ブ の mode= 形 式 は 、 readline が emacs モ ー ド か vi モ ー ド の ど ち ら に な っ て い る か を 調 べ る た め に 使 い ま す 。 例 え ば 、 こ れ を set keymap コ マ ン ド と 一 緒 に 使 い 、 readline が emacs モ ー ド で 始 ま っ た と き だ け キ ー の 割 り 当 て を emacs−standardemacs−ctlx キ ー マ ッ プ に 設 定 で き ま す 。

term

term= 形 式 を 使 う と 、 端 末 固 有 の キ ー 割 り 当 て を 入 れ る こ と が で き ま す 。 こ れ は 端 末 の フ ァ ン ク シ ョ ン キ ー が 出 力 す る キ ー シ ー ケ ン ス を 割 り 当 て る 場 合 な ど に 使 え ま す 。 = の 右 辺 の 単 語 の 評 価 は 、 端 末 の 完 全 な 名 前 お よ び 最 初 の の 前 ま で の 部 分 的 な 名 前 の 両 方 に 対 し て 行 わ れ ま す 。 例 え ば 、 sunsunsun−cmd の 両 方 に マ ッ チ し ま す 。

application

application は ア プ リ ケ ー シ ョ ン 固 有 の 設 定 を 入 れ る た め に 使 い ま す 。 readline ラ イ ブ ラ リ を 使 っ て い る プ ロ グ ラ ム は そ れ ぞ れ ア プ リ ケ ー シ ョ ン 名 (application name) を 設 定 す る の で 、 初 期 化 フ ァ イ ル は そ れ が 特 定 の 値 か ど う か を 調 べ ら れ ま す 。 こ れ を 使 っ て 、 特 定 の プ ロ グ ラ ム 用 で 便 利 な 機 能 に キ ー シ ー ケ ン ス を 割 り 当 て で き ま す 。 例 え ば 、 以 下 の コ マ ン ド は 、 bash の 場 合 に 、 現 在 の 単 語 ま た は 直 前 の 単 語 を ク ォ ー ト す る キ ー シ ー ケ ン ス を 追 加 し ま す 。

$if Bash
# Quote the current or previous word
"\C−xq": "\eb\"\ef\""
$endif

$endif こ の コ マ ン ド は

$if コ マ ン ド を 終 了 さ せ ま す (上 記 の 例 の 通 り )。

$else

$if デ ィ レ ク テ ィ ブ の こ の 分 岐 内 に 書 か れ た コ マ ン ド は 、 評 価 が 失 敗 し た と き に 実 行 さ れ ま す 。

$include こ の デ ィ レ ク テ ィ ブ は フ ァ イ ル 名 1 つ を 引 き 数 に 取 り 、 そ の フ ァ イ ル か ら コ マ ン ド と キ ー 割 り 当 て を 読 み 込 み ま す 。 例 え ば 以 下 の デ ィ レ ク テ ィ ブ を 使 う と /etc/inputrc が 読 み 込 ま れ ま す :

$include /etc/inputrc 検 索

readline に は 、 指 定 し た 文 字 列 を 含 む 行 を コ マ ン ド 履 歴 内 か ら 探 す コ マ ン ド が 用 意 さ れ て い ま す (後 述 の 履 歴 を 参 照 )。 検 索 の モ ー ド に は 、 イ ン ク リ メ ン タ ル (incremental) モ ー ド と 非 イ ン ク リ メ ン タ ル (non−incremental) モ ー ド の 2 つ が あ り ま す 。 イ ン ク リ メ ン タ ル 検 索 で は 、 ユ ー ザ が 検 索 文 字 列 全 体 の 入 力 が 終 わ る よ り 前 に 検 索 が 開 始 さ れ ま す 。 検 索 文 字 列 に 文 字 が 追 加 さ れ る た び に 、 readline は そ れ ま で に 入 力 し た 文 字 列 に マ ッ チ す る 履 歴 か ら 次 の エ ン ト リ を 表 示 し ま す 。 イ ン ク リ メ ン タ ル 検 索 で は 、 探 し て い る 履 歴 エ ン ト リ を 見 つ け る た め に 必 要 な 数 の 文 字 を 入 力 す れ ば 十 分 で す 。 isearch−terminators の 値 に 含 ま れ る 文 字 を 入 力 す る と 、 イ ン ク リ メ ン タ ル 検 索 は 終 了 し ま す 。 こ の 変 数 に 値 が 代 入 さ れ て い な い 場 合 に は 、 エ ス ケ ー プ 文 字 ま た は Control−J で イ ン ク リ メ ン タ ル 検 索 が 終 了 し ま す 。 Control−G は イ ン ク リ メ ン タ ル 検 索 を 異 常 終 了 さ せ 、 元 の 行 を 復 元 し ま す 。 検 索 が 終 了 す る と 、 検 索 文 字 列 を 含 む 履 歴 エ ン ト リ が 現 在 の 行 に な り ま す 。 マ ッ チ し た 他 の 履 歴 リ ス ト の エ ン ト リ を 見 つ け る に は 、 Control−S ま た は Control−R を 適 宜 入 力 し ま す 。 こ れ に よ り 、 今 ま で 入 力 し た 検 索 文 字 列 に マ ッ チ す る 次 の エ ン ト リ を 履 歴 の 前 方 ま た は 後 方 に 向 か っ て 探 し ま す 。 readline に 割 り 当 て ら れ た 他 の キ ー シ ー ケ ン ス を 入 力 す る と 検 索 が 終 わ り 、 入 力 し た キ ー シ ー ケ ン ス に 対 応 す る コ マ ン ド が 実 行 さ れ ま す 。 例 え ば 、 改 行 は 検 索 を 終 了 さ せ て 、 そ の 行 を 入 力 し ま す 。 こ れ に よ り 、 履 歴 リ ス ト 中 の コ マ ン ド が 実 行 さ れ ま す 。

readline は 前 回 の イ ン ク リ メ ン タ ル 検 索 で 入 力 さ れ た 検 索 文 字 列 を 覚 え て い ま す 。 新 し い 検 索 文 字 を 間 に 挟 ま ず に Control−R を 2 回 入 力 す る と 、 覚 え て い る 検 索 文 字 列 が 使 わ れ ま す 。 イ ン ク リ メ ン タ ル で な い 検 索 の 場 合 に は 、 検 索 文 字 列 全 体 を 読 み 込 ん で か ら 、 履 歴 行 に マ ッ チ す る も の の 検 索 を 始 め ま す 。 検 索 文 字 列 に は 、 ユ ー ザ が 入 力 し た も の か 、 現 在 の 行 の 内 容 の 一 部 が 使 え ま す 。

Readline の コ マ ン ド 名 以 下 は 、 コ マ ン ド の 名 前 お よ び そ れ ら が 割 り 当 て ら れ て い る デ フ ォ ル ト の キ ー シ ー ケ ン ス の 一 覧 で す 。 対 応 す る キ ー シ ー ケ ン ス が な い コ マ ン ド 名 に は 、 デ フ ォ ル ト で は キ ー は 割 り 当 て ら れ て い ま せ ん 。 以 下 の 説 明 で は 、 ポ イ ン ト (point) は 現 在 の カ ー ソ ル の 位 置 を 表 し 、 マ ー ク (mark)set−mark コ マ ン ド に よ っ て 保 存 さ れ た カ ー ソ ル 位 置 を 表 し ま す 。 ポ イ ン ト と マ ー ク の 間 の テ キ ス ト は 、 リ ー ジ ョ ン (region) と 呼 び ま す 。 移 動 コ マ ン ド
beginning−of−line (C−a)
現 在 の 行 の 先 頭 に 移 動 し ま す 。
end−of−line (C−e)
行 の 末 尾 に 移 動 し ま す 。
forward−char (C−f)

1 文 字 進 み ま す 。

backward−char (C−b)

1 文 字 戻 り ま す 。

forward−word (M−f) 次 の 単 語 の 最 後 に 進 み ま す 。 単 語 は 英 数 字 (英 字 と 数 字 ) か ら な り ま す 。
backward−word (M−b)
現 在 あ る い は 直 前 の 単 語 の 先 頭 に 戻 り ま す 。 単 語 は 英 数 字 (英 字 と 数 字 ) か ら な り ま す 。
shell−forward−word
次 の 単 語 の 最 後 に 進 み ま す 。 単 語 は ク ォ ー ト さ れ て い な い シ ェ ル の メ タ 文 字 で 区 切 ら れ ま す 。
shell−backward−word
現 在 の 単 語 あ る い は 前 の 単 語 の 先 頭 に 戻 り ま す 。 単 語 は ク ォ ー ト さ れ て い な い シ ェ ル の メ タ 文 字 で 区 切 ら れ ま す 。
clear−screen (C−l)
現 在 の 行 を 画 面 の 一 番 上 の 行 に 残 し た ま ま 、 画 面 を ク リ ア し ま す 。 引 き 数 を 付 け る と 、 画 面 を ク リ ア せ ず に 現 在 の 行 を 再 描 画 し ま す 。
redraw−current−line
現 在 の 行 を 再 描 画 し ま す 。 履 歴 操 作 の た め の コ マ ン ド
accept−line (Newline, Return)
カ ー ソ ル の 位 置 に 関 わ ら ず 、 行 を 確 定 し ま す 。 こ の 行 が 空 で な け れ ば 、 変 数 HISTCONTROL の 状 態 に 従 っ て 、 こ れ が 履 歴 リ ス ト に 追 加 さ れ ま す 。 行 が 履 歴 リ ス ト を 変 更 し た も の な ら ば 、 履 歴 行 は 元 の 状 態 に 戻 さ れ ま す 。
previous−history (C−p)
履 歴 リ ス ト を 戻 り 、 履 歴 リ ス ト か ら 前 の 行 を 取 り 出 し ま す 。
next−history (C−n)
履 歴 リ ス ト を 進 み 、 履 歴 リ ス ト か ら 次 の 行 を 取 り 出 し ま す 。
beginning−of−history (M−<)
履 歴 の 最 初 の 行 に 移 動 し ま す 。
end−of−history (M−>)
入 力 履 歴 の 最 後 に 移 動 し ま す 。 つ ま り 、 現 在 入 力 中 の 行 に 移 動 し ま す 。
reverse−search−history (C−r)
現 在 の 行 を 開 始 点 に し て 後 方 に 向 か っ て 検 索 を 行 い 、 必 要 に 応 じ て 履 歴 を 「 遡 っ て 」 い き ま す 。 こ れ は イ ン ク リ メ ン タ ル 検 索 で す 。
forward−search−history (C−s)
現 在 の 行 を 開 始 点 に し て 前 方 に 向 か っ て 検 索 を 行 い 、 必 要 に 応 じ て 履 歴 を 「 下 っ て 」 い き ま す 。 こ れ は イ ン ク リ メ ン タ ル 検 索 で す 。
non−incremental−reverse−search−history (M−p)
現 在 の 行 を 開 始 点 に し て 、 履 歴 リ ス ト を 後 方 に 向 か っ て 検 索 を 行 い ま す 。 ユ ー ザ が 入 力 し た 文 字 列 を 非 イ ン ク リ メ ン タ ル モ ー ド で 検 索 し ま す 。
non−incremental−forward−search−history (M−n)
現 在 の 行 を 開 始 点 に し て 、 履 歴 リ ス ト を 前 方 に 向 か っ て 検 索 を 行 い ま す 。 ユ ー ザ が 入 力 し た 文 字 列 を 非 イ ン ク リ メ ン タ ル モ ー ド で 検 索 し ま す 。
history−search−forward
履 歴 を 前 方 に 向 か っ て 検 索 し 、 現 在 の 行 の 先 頭 と ポ イ ン ト の 間 の 文 字 列 を 探 し ま す 。 こ れ は 非 イ ン ク リ メ ン タ ル 検 索 で す 。
history−search−backward
履 歴 を 後 方 に 向 か っ て 検 索 し 、 現 在 の 行 の 先 頭 お よ び ポ イ ン ト の 間 の 文 字 列 を 探 し ま す 。 こ れ は 非 イ ン ク リ メ ン タ ル 検 索 で す 。
yank−nth−arg (M−C−y)
前 の コ マ ン ド に 対 す る 最 初 の 引 き 数 (通 常 は 前 の 行 の 2 番 目 の 単 語 ) を ポ イ ン ト に 挿 入 し ま す 。 引 き 数 n が 付 い て い る と 、 前 の コ マ ン ド の n 番 目 の 単 語 (前 の コ マ ン ド の 単 語 は 0 か ら 数 え ま す )。 引 き 数 が 負 な ら ば 、 前 の コ マ ン ド の 最 後 か ら n 番 目 の 単 語 が 挿 入 さ れ ま す 。 引 き 数 n が 一 度 決 ま る と 、 コ マ ン ド の 引 き 数 が 履 歴 の 展 開 で の "!n" の 指 定 の よ う に 展 開 さ れ ま す 。
yank−last−arg (M−., M−_)
前 の コ マ ン ド の 最 後 の 引 き 数 (一 つ 前 の 履 歴 エ ン ト リ の 最 後 の 単 語 ) を 挿 入 し ま す 。 引 き 数 が あ る と 、 yank−nth−arg と 全 く 同 じ よ う に 動 作 し ま す 。 yank−last−arg を 繰 り 返 し て 呼 び 出 す と 、 履 歴 リ ス ト を 遡 っ て 参 照 が 行 わ れ 、 そ れ ぞ れ の 行 の 最 後 の 引 き 数 が 順 番 に 挿 入 さ れ ま す 。 繰 り 返 し て 呼 び 出 す と き の 引 き 数 は 、 履 歴 の 中 を 動 く 方 向 を 決 め ま す 。 負 の 引 き 数 は 、 履 歴 の 中 を 動 く 方 向 (後 方 ま た は 前 方 ) を 反 転 し ま す 。 履 歴 の 展 開 で の "!$" の 指 定 の よ う に 、 最 後 の 引 き 数 の 展 開 に 履 歴 の 展 開 の 機 能 が 使 わ れ ま す 。
shell−expand−line (M−C−e)
シ ェ ル が 行 う の と 同 じ よ う に 行 の 展 開 を 行 い ま す 。 エ イ リ ア ス や 履 歴 の 展 開 を 含 め 、 シ ェ ル の 行 う 全 て の 単 語 展 開 が 行 わ れ ま す 。 履 歴 の 展 開 の 説 明 に つ い て は 、 後 述 の 履 歴 の 展 開 を 参 照 し て く だ さ い 。
history−expand−line (M−^)
現 在 の 行 で 履 歴 の 展 開 を 行 い ま す 。 履 歴 の 展 開 の 説 明 に つ い て は 、 後 述 の 履 歴 の 展 開 を 参 照 し て く だ さ い 。
magic−space
現 在 の 行 で 履 歴 の 展 開 を 行 い 、 空 白 を 挿 入 し ま す 。 履 歴 の 展 開 の 説 明 に つ い て は 、 後 述 の 履 歴 の 展 開 を 参 照 し て く だ さ い 。
alias−expand−line
現 在 の 行 で エ イ リ ア ス の 展 開 を 行 い ま す 。 エ イ リ ア ス の 展 開 の 説 明 に つ い て は 、 前 述 の エ イ リ ア ス を 参 照 し て く だ さ い 。
history−and−alias−expand−line
現 在 の 行 で 履 歴 と エ イ リ ア ス の 展 開 を 行 い ま す 。
insert−last−argument (M−., M−_)

yank−last−arg と 同 じ も の で す 。

operate−and−get−next (C−o) 現 在 の 行 を 実 行 し 、 履 歴 内 の 現 在 の 行 の 次 の 行 を 編 集 用 に 取 得 し ま す 。 引 き 数 は 全 て 無 視 さ れ ま す 。
edit−and−execute−command (C−xC−e)
エ デ ィ タ を 起 動 し て 現 在 の コ マ ン ド ラ イ ン の 内 容 を 開 き 、 そ の 結 果 を シ ェ ル の コ マ ン ド と し て 実 行 し ま す 。 bash は エ デ ィ タ と し て $VISUAL, $EDITOR, emacs の 順 で 起 動 を 試 み ま す 。 テ キ ス ト 編 集 の た め の コ マ ン ド
delete−char (C−d)
ポ イ ン ト の 文 字 を 削 除 し ま す 。 ポ イ ン ト が 行 の 先 頭 で あ り 、 そ の 行 に 文 字 が な く 、 さ ら に 打 ち 込 ん だ 最 後 の 文 字 が delete−char に 割 り 当 て ら れ て い な け れ ば 、 EOF が 返 さ れ ま す 。
backward−delete−char (Rubout)
カ ー ソ ル の 前 の 文 字 を 削 除 し ま す 。 数 値 の 引 き 数 を 与 え る と 、 削 除 し た テ キ ス ト を キ ル リ ン グ に 保 存 し ま す 。
forward−backward−delete−char
カ ー ソ ル が 行 末 に な け れ ば カ ー ソ ル が あ る 位 置 の 文 字 を 削 除 し ま す 。 カ ー ソ ル が 行 末 に あ る 場 合 に は 、 カ ー ソ ル の 前 の 文 字 を 削 除 し ま す 。
quoted−insert (C−q, C−v)
次 に 打 ち 込 ん だ 文 字 を そ の ま ま 行 に 追 加 し ま す 。 こ れ は C−q 等 の 文 字 を 挿 入 す る た め に 使 い ま す 。
tab−insert (C−v TAB)
タ ブ 文 字 を 挿 入 し ま す 。
self−insert (a, b, A, 1, !, ...)
打 ち 込 ん だ 文 字 を 挿 入 し ま す 。
transpose−chars (C−t)
ポ イ ン ト の 前 に あ る 文 字 を 動 か し 、 現 在 ポ イ ン ト が あ る 文 字 の 後 ろ に 持 っ て い き ま す 。 同 時 に ポ イ ン ト も 前 に 進 み ま す 。 ポ イ ン ト が 行 の 最 後 に あ る 場 合 は 、 ポ イ ン ト の 前 の 2 文 字 が 交 換 さ れ ま す 。 負 の 引 き 数 を 指 定 す る と 、 何 も 起 こ り ま せ ん 。
transpose−words (M−t)
ポ イ ン ト の 前 に あ る 単 語 を 動 か し 、 ポ イ ン ト の 後 ろ に あ る 単 語 の 後 ろ に 持 っ て い き ま す 。 こ の 際 に は 、 ポ イ ン ト も 始 め に 前 に あ っ た 単 語 の 後 ろ ま で 移 動 し ま す 。 ポ イ ン ト が 行 の 最 後 に あ る 場 合 は 、 行 の 最 後 の 2 単 語 が 交 換 さ れ ま す 。
upcase−word (M−u)
現 在 の (ま た は 後 ろ の ) 単 語 を 大 文 字 に し ま す 。 負 の 引 き 数 を 指 定 す る と 、 前 の 単 語 を 大 文 字 に し ま す が 、 ポ イ ン ト は 動 き ま せ ん 。
downcase−word (M−l)
現 在 の (ま た は 後 ろ の ) 単 語 を 小 文 字 に し ま す 。 負 の 引 き 数 を 指 定 す る と 、 前 の 単 語 を 小 文 字 に し ま す が 、 ポ イ ン ト は 動 き ま せ ん 。
capitalize−word (M−c)
現 在 の (ま た は 後 ろ の ) 単 語 を キ ャ ピ タ ラ イ ズ し ま す (単 語 の 先 頭 の 文 字 を 大 文 字 に し ま す )。 負 の 引 き 数 を 指 定 す る と 前 の 単 語 を キ ャ ピ タ ラ イ ズ し ま す が 、 ポ イ ン ト は 動 き ま せ ん 。
overwrite−mode
上 書 き モ ー ド を ト グ ル さ せ ま す 。 正 の 引 き 数 を 指 定 す る と 上 書 き モ ー ド に 切 り 替 え ま す 。 負 の 引 き 数 を 指 定 す る と 挿 入 モ ー ド に 切 り 替 え ま す 。 こ の コ マ ン ド は emacs モ ー ド で の み 有 効 で す 。 vi モ ー ド で は 違 っ た 形 で 上 書 き し ま す 。 readline() を 呼 び 出 し た と き は 毎 回 、 挿 入 モ ー ド で 始 ま り ま す 。 上 書 き モ ー ド で は 、 self−insert が 割 り 当 て ら れ た 文 字 は 、 ポ イ ン ト の 位 置 の テ キ ス ト を 右 に 押 し 出 す の で は な く 置 き 換 え ま す 。 backward−delete−char が 割 り 当 て ら れ た 文 字 は 、 ポ イ ン ト の 前 の 文 字 を ス ペ ー ス で 置 き 換 え ま す 。 こ の コ マ ン ド は デ フ ォ ル ト で は キ ー に 割 り 当 て ら れ て い ま せ ん 。 キ ル と ヤ ン ク
kill−line (C−k)
ポ イ ン ト か ら 行 末 ま で の テ キ ス ト を キ ル し ま す 。
backward−kill−line (C−x Rubout)
現 在 の カ ー ソ ル 位 置 か ら 行 頭 ま で を キ ル し ま す 。
unix−line−discard (C−u)
ポ イ ン ト か ら 行 頭 ま で を キ ル し ま す 。 キ ル さ れ た テ キ ス ト は キ ル リ ン グ (kill−ring) に 入 り ま す 。
kill−whole−line
現 在 の 行 の 文 字 を 全 て キ ル し ま す 。 ポ イ ン ト の 位 置 は 関 係 あ り ま せ ん 。
kill−word (M−d)
ポ イ ン ト か ら 現 在 の 単 語 の 終 わ り ま で を キ ル し ま す 。 ポ イ ン ト が 単 語 と 単 語 の 間 で あ れ ば 、 後 ろ の 単 語 の 終 わ り ま で を キ ル し ま す 。 単 語 の 境 界 は forward−word で 使 わ れ て い る も の と 同 じ で す 。
backward−kill−word (M−Rubout)
ポ イ ン ト の 前 に あ る 単 語 を キ ル し ま す 。 単 語 の 境 界 は backward−word で 使 わ れ て い る も の と 同 じ で す 。
shell−kill−word (M−d)
ポ イ ン ト か ら 現 在 の 単 語 の 終 わ り ま で を キ ル し ま す 。 ポ イ ン ト が 単 語 と 単 語 の 間 で あ れ ば 、 後 ろ の 単 語 の 終 わ り ま で を キ ル し ま す 。 単 語 の 境 界 は shell−forward−word で 使 わ れ て い る も の と 同 じ で す 。
shell−backward−kill−word (M−Rubout)
ポ イ ン ト の 前 に あ る 単 語 を キ ル し ま す 。 単 語 の 境 界 は shell−backward−word で 使 わ れ て い る も の と 同 じ で す 。
unix−word−rubout (C−w)
ポ イ ン ト の 前 に あ る 単 語 を キ ル し ま す 。 そ の 際 に は 空 白 を 単 語 の 境 界 と し て 用 い ま す 。 キ ル さ れ た テ キ ス ト は キ ル リ ン グ に 入 り ま す 。
unix−filename−rubout
ポ イ ン ト の 前 に あ る 単 語 を キ ル し ま す 。 そ の 際 に は 空 白 と ス ラ ッ シ ュ を 単 語 の 境 界 と し て 用 い ま す 。 キ ル さ れ た テ キ ス ト は キ ル リ ン グ に 入 り ま す 。
delete−horizontal−space (M−\)
ポ イ ン ト の 周 り の 空 白 と タ ブ を 全 て 削 除 し ま す 。
kill−region
現 在 の リ ー ジ ョ ン 中 の テ キ ス ト を キ ル し ま す 。
copy−region−as−kill
リ ー ジ ョ ン 中 の テ キ ス ト を キ ル バ ッ フ ァ に コ ピ ー し ま す 。
copy−backward−word
ポ イ ン ト の 前 の 単 語 を キ ル バ ッ フ ァ に コ ピ ー し ま す 。 単 語 の 境 界 は backward−word と 同 じ で す 。
copy−forward−word
ポ イ ン ト の 後 ろ の 単 語 を キ ル バ ッ フ ァ に コ ピ ー し ま す 。 単 語 の 境 界 は forward−word と 同 じ で す 。
yank (C−y)
キ ル リ ン グ の 先 頭 の テ キ ス ト を バ ッ フ ァ 中 の ポ イ ン ト に ヤ ン ク し ま す 。
yank−pop (M−y)
キ ル リ ン グ の 順 番 を 1 つ 移 動 し 、 新 た に 先 頭 に な っ た テ キ ス ト を ヤ ン ク し ま す 。 yank ま た は yank−pop の 後 に し か 使 え ま せ ん 。 数 値 の 引 き 数
digit−argument (M−0, M−1, ..., M−−)
す で に 入 力 さ れ た 引 き 数 に こ の 数 字 を 追 加 す る か 、 ま た は こ の 数 字 に よ っ て 新 し い 引 き 数 を 始 め ま す 。 M−− を 使 う と 、 負 の 値 を 指 定 で き ま す 。
universal−argument
引 き 数 を 指 定 す る 別 の 方 法 で す 。 こ の コ マ ン ド に 続 け て 1 つ 以 上 の 数 字 が 入 力 さ れ た 場 合 (頭 に マ イ ナ ス 記 号 を 付 け る こ と も で き ま す )、 こ れ ら の 数 字 で 引 き 数 が 定 義 さ れ ま す 。 こ の コ マ ン ド の 後 に 数 字 が 続 い た 場 合 、 universal−argument を 再 び 実 行 す る と 数 値 の 引 き 数 を 終 了 し ま す が 、 そ う で な い 場 合 は 無 視 さ れ ま す 。 特 殊 な ケ ー ス と し て 、 こ の コ マ ン ド の 直 後 に 数 字 で も マ イ ナ ス 記 号 で も な い 文 字 が あ る 場 合 に は 、 次 の コ マ ン ド に 対 す る 引 き 数 カ ウ ン ト が 4 倍 に な り ま す 。 引 き 数 カ ウ ン ト は 最 初 は 1 な の で 、 こ の 機 能 を 一 度 実 行 す る と 引 き 数 カ ウ ン ト は 4 に な り 、 も う 一 度 実 行 す る と 引 き 数 カ ウ ン ト は 16 に な り ま す 。 そ れ 以 降 も 同 様 で す 。 補 完
complete (TAB)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 を 試 み ま す 。 bash が 補 完 を 行 う 際 に は 、 変 数 (テ キ ス ト が $ で 始 ま る 場 合 )、 ユ ー ザ 名 (テ キ ス ト が ~ で 始 ま る 場 合 )、 ホ ス ト 名 (テ キ ス ト が @ で 始 ま る 場 合 )、 コ マ ン ド (エ イ リ ア ス や 関 数 も 含 み ま す ) の 順 序 で マ ッ チ を 行 い ま す 。 い ず れ に も マ ッ チ し な い 場 合 に は 、 フ ァ イ ル 名 補 完 を 試 み ま す 。
possible−completions (M−?)
ポ イ ン ト の 前 の テ キ ス ト の 補 完 候 補 を 列 挙 し ま す 。
insert−completions (M−*)
ポ イ ン ト の 前 の テ キ ス ト を 補 完 し て 得 ら れ る も の を 全 て 挿 入 し ま す 。 挿 入 さ れ る も の は 、 possible−completions で 列 挙 さ れ る も の と 同 じ で す 。
menu−complete

complete コ マ ン ド に 似 て い ま す が 、 補 完 さ れ る 単 語 を 補 完 候 補 リ ス ト の う ち の 1 つ と 置 換 し ま す 。 menu−complete を 繰 り 返 し て 実 行 す る と 、 補 完 候 補 の リ ス ト が 次 々 と 順 番 に 挿 入 さ れ ま す 。 補 完 リ ス ト の 最 後 ま で 来 る と ベ ル が (bell−style の 設 定 に 基 づ い て ) 鳴 ら さ れ 、 元 の テ キ ス ト に 戻 り ま す 。 引 き 数 n を 指 定 す る と 、 リ ス ト 中 の 位 置 が n 個 進 み ま す 。 負 の 引 き 数 を 指 定 す る と 、 リ ス ト 中 を 逆 向 き に 戻 れ ま す 。 こ の コ マ ン ド は TAB に 割 り 当 て る こ と を 意 図 し て 用 意 さ れ た も の で す が 、 デ フ ォ ル ト で は 割 り 当 て は 行 わ れ て い ま せ ん 。

menu−complete−backward

menu−complete コ マ ン ド に 似 て い ま す が 、 menu−complete に 負 の 引 き 数 を 与 え た と き の よ う に 、 補 完 候 補 の リ ス ト を 逆 向 き に 進 み ま す 。 こ の コ マ ン ド は デ フ ォ ル ト で は キ ー に 割 り 当 て ら れ て い ま せ ん 。

delete−char−or−list カ ー ソ ル が 行 頭 や 行 末 に 無 け れ ば 、 カ ー ソ ル の 下 の 文 字 を 削 除 し ま す (delete−char と 同 様 で す )。 カ ー ソ ル が 行 末 に あ る 場 合 は 、 possible−completions と 同 じ 動 作 を し ま す 。 こ の コ マ ン ド は デ フ ォ ル ト で は キ ー に 割 り 当 て ら れ て い ま せ ん 。
complete−filename (M−/)
ポ イ ン ト の 前 の テ キ ス ト に つ い て フ ァ イ ル 名 の 補 完 を 試 み ま す 。
possible−filename−completions (C−x /)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 候 補 を 列 挙 し ま す 。 テ キ ス ト は フ ァ イ ル 名 と し て 扱 わ れ ま す 。
complete−username (M−~)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 を 試 み ま す 。 テ キ ス ト は ユ ー ザ 名 と し て 扱 わ れ ま す 。
possible−username−completions (C−x ~)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 候 補 を 列 挙 し ま す 。 テ キ ス ト は ユ ー ザ 名 と し て 扱 わ れ ま す 。
complete−variable (M−$)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 を 試 み ま す 。 テ キ ス ト は シ ェ ル 変 数 と し て 扱 わ れ ま す 。
possible−variable−completions (C−x $)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 候 補 を 列 挙 し ま す 。 テ キ ス ト は シ ェ ル 変 数 と し て 扱 わ れ ま す 。
complete−hostname (M−@)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 を 試 み ま す 。 テ キ ス ト は ホ ス ト 名 と し て 扱 い ま す 。
possible−hostname−completions (C−x @)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 候 補 を 列 挙 し ま す 。 テ キ ス ト は ホ ス ト 名 と し て 扱 い ま す 。
complete−command (M−!)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 を 試 み ま す 。 テ キ ス ト は コ マ ン ド 名 と し て 扱 い ま す 。 コ マ ン ド 補 完 の 際 に マ ッ チ ン グ を 試 み る 順 序 は 、 エ イ リ ア ス 、 予 約 語 、 シ ェ ル 関 数 、 シ ェ ル の 組 み 込 み コ マ ン ド 、 実 行 フ ァ イ ル で す 。
possible−command−completions (C−x !)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 候 補 を 列 挙 し ま す 。 テ キ ス ト は コ マ ン ド 名 と し て 扱 い ま す 。
dynamic−complete−history (M−TAB)
ポ イ ン ト の 前 の テ キ ス ト に つ い て 補 完 を 試 み ま す 。 履 歴 リ ス ト の 各 行 に 対 し て テ キ ス ト の 比 較 が 行 わ れ 、 マ ッ チ し た も の が 補 完 の 候 補 と な り ま す 。
dabbrev−expand
ポ イ ン ト の 前 の テ キ ス ト に つ い て メ ニ ュ ー 補 完 を 試 み ま す 。 履 歴 リ ス ト の 各 行 に 対 し て テ キ ス ト の 比 較 が 行 わ れ 、 マ ッ チ し た も の が 補 完 の 候 補 と な り ま す 。
complete−into−braces (M−{)
フ ァ イ ル 名 補 完 を 実 行 し 、 補 完 候 補 の リ ス ト を 挿 入 し ま す 。 シ ェ ル か ら 利 用 可 能 な リ ス ト と な る よ う に 、 返 さ れ る 候 補 は ブ レ ー ス で 括 ら れ ま す (前 述 の ブ レ ー ス 展 開 を 参 照 )。 キ ー ボ ー ド マ ク ロ
start−kbd−macro (C−x ()
現 在 の キ ー ボ ー ド マ ク ロ に 対 し て 入 力 さ れ る 文 字 列 の 保 存 を 開 始 し ま す 。
end−kbd−macro (C−x ))
現 在 の キ ー ボ ー ド マ ク ロ に 対 し て 入 力 さ れ た 文 字 列 の 保 存 を 終 了 し 、 そ の 定 義 を 格 納 し ま す 。
call−last−kbd−macro (C−x e)
最 後 に 定 義 さ れ た キ ー ボ ー ド マ ク ロ を 再 実 行 し ま す 。 マ ク ロ 内 の 各 文 字 が あ た か も キ ー ボ ー ド か ら 入 力 さ れ た か の よ う に 出 力 さ れ ま す 。 そ の 他
re−read−init−file (C−x C−r)

inputrc フ ァ イ ル の 内 容 を 読 み 込 み 、 こ の フ ァ イ ル 中 の 割 り 当 て や 変 数 設 定 を 取 り 込 み ま す 。

abort (C−g) 現 在 の 編 集 行 を 捨 て 、 端 末 の ベ ル を 鳴 ら し ま す (動 作 は bell−style の 設 定 に 従 い ま す )。
do−uppercase−version (M−a, M−b, M−
x, ...) メ タ 文 字 と 共 に 入 力 さ れ た 文 字 x が 小 文 字 で あ れ ば 、 x に 対 応 す る 大 文 字 に 割 り 当 て ら れ て い る コ マ ン ド を 実 行 し ま す 。
prefix−meta (ESC)
次 に 入 力 さ れ る 文 字 を 、 メ タ 文 字 と 共 に 入 力 さ れ た こ と に し ま す 。 ESC f Meta−f と 同 じ 意 味 で す 。
undo (C−_, C−x C−u)
イ ン ク リ メ ン タ ル ア ン ド ゥ を 行 い ま す 。 履 歴 は 行 ご と に 別 々 に 記 憶 さ れ て い ま す 。
revert−line (M−r)
こ の 行 に 対 し て 行 っ た 変 更 を 全 て 取 り 消 し ま す 。 こ の コ マ ン ド は 、 行 が 初 期 状 態 に 戻 る ま で undo コ マ ン ド を 実 行 す る よ う な も の で す 。
tilde−expand (M−&)
現 在 の 単 語 に つ い て チ ル ダ 展 開 を 実 行 し ま す 。
set−mark (C−@, M−<space>)
ポ イ ン ト に マ ー ク を 設 定 し ま す 。 数 字 の 引 き 数 が 与 え ら れ た 場 合 に は 、 マ ー ク は そ の 位 置 に 設 定 さ れ ま す 。
exchange−point−and−mark (C−x C−x)
ポ イ ン ト を マ ー ク と 入 れ 換 え ま す 。 保 存 さ れ て い る 位 置 が 現 在 の カ ー ソ ル 位 置 に な り 、 古 い カ ー ソ ル 位 置 が マ ー ク と し て 保 存 さ れ ま す 。
character−search (C−])
文 字 を 1 つ 読 み 込 み 、 そ の 文 字 が 次 に 現 わ れ る 場 所 に ポ イ ン ト を 移 動 さ せ ま す 。 負 の カ ウ ン ト を 与 え る と 、 そ の 文 字 が 前 に 現 わ れ た 場 所 を 探 し ま す 。
character−search−backward (M−C−])
文 字 を 1 つ 読 み 込 み 、 そ の 文 字 が 前 に 現 わ れ た 場 所 に ポ イ ン ト を 移 動 さ せ ま す 。 負 の カ ウ ン ト を 与 え る と 、 そ の 文 字 が 次 に 現 わ れ る 場 所 を 探 し ま す 。
skip−csi−sequence

Home や End な ど の キ ー に 定 義 さ れ る よ う な 複 数 キ ー か ら な る シ ー ケ ン ス を 使 い 切 る だ け の 文 字 を 読 み 込 み ま す 。 こ れ ら の シ ー ケ ン ス は 、 通 常 ESC−[ で 表 さ れ る コ ン ト ロ ー ル シ ー ケ ン ス (CSI) で 始 ま り ま す 。 こ の シ ー ケ ン ス が "\[" に 割 り 当 て ら れ て い る と す る と 、 キ ー が 明 示 的 に readline の コ マ ン ド に 割 り 当 て ら れ て い る 場 合 を 除 き 、 そ れ ら の シ ー ケ ン ス を 生 み 出 す キ ー は 、 は ぐ れ た 文 字 を 編 集 バ ッ フ ァ に 挿 入 さ れ ず 、 何 も し ま せ ん 。 こ の コ マ ン ド は デ フ ォ ル ト で は キ ー に 割 り 当 て ら れ て い ま せ ん が 、 多 く の 場 合 ESC−[ に 割 り 当 て ら れ ま す 。

insert−comment (M−#) 数 字 の 引 き 数 を 指 定 し な い 場 合 、 readline の comment−begin 変 数 の 値 が 現 在 の 行 の 先 頭 に 挿 入 さ れ ま す 。 数 字 の 引 き 数 を 指 定 す る と 、 ト グ ル 状 に 動 作 し ま す 。 つ ま り 、 行 の 先 頭 の 文 字 が comment−begin の 値 に マ ッ チ し な い 場 合 に は 、 そ の 値 が 挿 入 さ れ ま す 。 マ ッ チ す る 場 合 に は 、 comment−begin の 文 字 が 行 の 先 頭 か ら 削 除 さ れ ま す 。 い ず れ の 場 合 も 、 改 行 が 打 ち 込 ま れ た の と 同 じ よ う に 行 の 入 力 が 完 了 し ま す 。 comment−begin の デ フ ォ ル ト 値 に よ っ て 、 こ の コ マ ン ド は 現 在 の 行 を シ ェ ル の コ メ ン ト と し ま す 。 数 字 の 引 き 数 を 指 定 し た こ と で コ メ ン ト の 文 字 が 削 除 さ れ る と 、 行 は シ ェ ル に よ り 実 行 さ れ ま す 。
glob−complete−word (M−g)
ポ イ ン ト の 前 の 単 語 が パ ス 名 展 開 の パ タ ー ン と し て 扱 わ れ ま す 。 末 尾 に 暗 黙 の ア ス タ リ ス ク が 付 い て い る も の と み な さ れ ま す 。 こ の パ タ ー ン を 使 っ て 補 完 候 補 の フ ァ イ ル 名 の リ ス ト が 生 成 さ れ ま す 。
glob−expand−word (C−x *)
ポ イ ン ト の 前 の 単 語 が パ ス 名 展 開 の パ タ ー ン と し て 扱 わ れ 、 こ の 単 語 と 置 き 換 え ら れ る 形 で マ ッ チ す る フ ァ イ ル 名 の リ ス ト が 挿 入 さ れ ま す 。 数 字 の 引 き 数 を 与 え る と 、 パ ス 名 展 開 の 前 に 末 尾 に ア ス タ リ ス ク を 追 加 し ま す 。
glob−list−expansions (C−x g)

glob−expand−word で 生 成 さ れ る の と 同 じ 展 開 結 果 の リ ス ト が 表 示 さ れ 、 行 が 再 描 画 さ れ ま す 。 数 字 の 引 き 数 を 与 え る と 、 パ ス 名 展 開 の 前 に 末 尾 に ア ス タ リ ス ク を 追 加 し ま す 。

dump−functions 全 て の 関 数 と そ の キ ー 割 り 当 て を 、 readline の 出 力 ス ト リ ー ム に 出 力 し ま す 。 数 値 の 引 き 数 を 与 え る と 、 出 力 は inputrc に 書 き 込 め る 形 に 整 形 さ れ ま す 。
dump−variables
全 て の 設 定 可 能 な readline の 変 数 と そ の 値 を 、 readline の 出 力 ス ト リ ー ム に 出 力 し ま す 。 数 値 の 引 き 数 を 与 え る と 、 出 力 は inputrc に 書 き 込 め る 形 に 整 形 さ れ ま す 。
dump−macros
マ ク ロ に 割 り 当 て ら れ た readline の キ ー シ ー ケ ン ス と マ ク ロ が 出 力 す る 文 字 列 を 全 て 出 力 し ま す 。 数 値 の 引 き 数 を 与 え る と 、 出 力 は inputrc に 書 き 込 め る 形 に 整 形 さ れ ま す 。
display−shell−version (C−x C−v)
現 在 実 行 し て い る bash の バ ー ジ ョ ン 情 報 を 表 示 し ま す 。 プ ロ グ ラ ム 補 完
complete
組 み 込 み コ マ ン ド で 補 完 仕 様 (compspec) が 定 義 さ れ て い る コ マ ン ド に 対 し て 引 き 数 の 単 語 補 完 が 試 み ら れ る と 、 プ ロ グ ラ ム 補 完 の 機 能 が 呼 び 出 さ れ ま す (組 み 込 み コ マ ン ド complete に つ い て は 、 後 述 す る シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。 ま ず 、 コ マ ン ド 名 が 特 定 さ れ ま す 。 コ マ ン ド 名 の 単 語 が 空 文 字 列 で あ れ ば (空 の 行 の 先 頭 で 補 完 し よ う と し た と き )、 complete−E オ プ シ ョ ン で 定 義 さ れ た 補 完 仕 様 が 使 わ れ ま す 。 そ の コ マ ン ド に 対 し て 補 完 仕 様 が 定 義 さ れ て い れ ば 、 そ の 補 完 仕 様 が そ の 単 語 の 補 完 候 補 の リ ス ト 生 成 に 使 わ れ ま す 。 コ マ ン ド の 単 語 が フ ル パ ス 名 で あ れ ば 、 最 初 に フ ル パ ス 名 の 補 完 仕 様 が 検 索 さ れ ま す 。 フ ル パ ス 名 に 対 す る 補 完 仕 様 が 見 つ か ら な か っ た 場 合 は 、 最 後 の ス ラ ッ シ ュ 以 降 の 部 分 に 対 し て 該 当 す る 補 完 仕 様 を 見 つ け よ う と し ま す 。 補 完 仕 様 が 見 つ か ら な か っ た 場 合 は 、 complete−D オ プ シ ョ ン で 定 義 さ れ た 補 完 仕 様 が 使 わ れ ま す 。 補 完 仕 様 が 見 つ か る と 、 そ の 補 完 仕 様 を 使 っ て マ ッ チ す る 単 語 の リ ス ト が 生 成 さ れ ま す 。 補 完 仕 様 が 見 つ か ら な か っ た 場 合 は 、 前 述 の 補 完 の 節 で 説 明 し た よ う な bash の デ フ ォ ル ト の 補 完 が 行 わ れ ま す 。 ま ず 、 補 完 仕 様 で 指 定 さ れ た 動 作 が 用 い ら れ ま す 。 補 完 さ れ る 単 語 の 前 置 部 分 に マ ッ チ す る も の だ け が 返 さ れ ま す 。 フ ァ イ ル 名 や デ ィ レ ク ト リ 名 の 補 完 に −f−d オ プ シ ョ ン が 使 用 さ れ た 場 合 は 、 シ ェ ル 変 数 FIGNORE が マ ッ チ の フ ィ ル タ と し て 使 用 さ れ ま す 。 続 い て −G オ プ シ ョ ン に よ っ て 指 定 さ れ た フ ァ イ ル 名 展 開 パ タ ー ン の 補 完 が 生 成 さ れ ま す 。 パ タ ー ン に よ っ て 生 成 さ れ た 単 語 は 、 補 完 さ れ る 単 語 と マ ッ チ す る 必 要 は あ り ま せ ん 。 GLOBIGNORE シ ェ ル 変 数 は マ ッ チ の フ ィ ル タ と し て は 使 わ れ ま せ ん が 、 FIGNORE 変 数 は 使 用 さ れ ま す 。 次 に 、 −W オ プ シ ョ ン で 指 定 さ れ た 引 き 数 の 文 字 列 が 考 慮 さ れ ま す 。 文 字 列 は 、 最 初 に IFS 特 殊 変 数 の 文 字 を 区 切 り 文 字 と し て 分 割 さ れ ま す 。 シ ェ ル の ク ォ ー ト 処 理 は 考 慮 さ れ ま す 。 そ れ ぞ れ の 単 語 は 、 前 述 の 展 開 で 示 し た よ う に 、 ブ レ ー ス 展 開 、 チ ル ダ 展 開 、 パ ラ メ ー タ と 変 数 の 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 、 パ ス 名 展 開 が 行 わ れ ま す 。 結 果 は 、 前 述 の 単 語 の 分 割 で 示 し た 規 則 に よ っ て 分 割 さ れ ま す 。 展 開 の 結 果 は 補 完 さ れ る 単 語 の 前 置 部 分 と マ ッ チ が 行 わ れ 、 マ ッ チ し た 単 語 が 補 完 候 補 と な り ま す 。 こ れ ら の マ ッ チ が 生 成 さ れ た 後 、 シ ェ ル 関 数 や −F−C オ プ シ ョ ン で 指 定 さ れ た コ マ ン ド が 呼 び 出 さ れ ま す 。 コ マ ン ド や 関 数 が 呼 び 出 さ れ る と き は 、 COMP_LINE, COMP_POINT, COMP_KEY, COMP_TYPE 変 数 に 前 述 の シ ェ ル 変 数 で 示 す よ う に 値 が 設 定 さ れ ま す 。 シ ェ ル 関 数 が 呼 び 出 さ れ る 場 合 は 、 COMP_WORDS COMP_CWORD 変 数 も 設 定 さ れ ま す 。 関 数 や コ マ ン ド が 呼 び 出 さ れ る と き は 、 最 初 の 引 き 数 は 引 き 数 が 補 完 さ れ る コ マ ン ド の 名 前 、 二 番 目 の 引 き 数 は 補 完 さ れ る 単 語 、 三 番 目 の 引 き 数 は 現 在 の コ マ ン ド ラ イ ン で 補 完 中 の 単 語 の 前 に 置 か れ る 単 語 と な り ま す 。 補 完 さ れ る 単 語 に 対 し て 生 成 さ れ た 補 完 の 候 補 は フ ィ ル タ リ ン グ さ れ ま せ ん 。 関 数 や コ マ ン ド は 生 成 さ れ た マ ッ チ と は 無 関 係 に 補 完 さ れ ま す 。

−F で 指 定 さ れ た 関 数 が ま ず 呼 び 出 さ れ ま す 。 関 数 は 、 後 述 す る compgen 組 み 込 み コ マ ン ド を 含 め た 、 全 て の シ ェ ル の 機 能 を 使 っ て マ ッ チ を 生 成 し ま す 。 補 完 候 補 は 必 ず COMPREPLY 配 列 変 数 に 格 納 さ れ ま す 。 続 い て −C オ プ シ ョ ン で 指 定 さ れ た コ マ ン ド が 呼 び 出 さ れ 、 環 境 変 数 を コ マ ン ド 置 換 し ま す 。 こ の コ マ ン ド は 、 補 完 候 補 を 1 行 に ひ と つ ず つ 標 準 出 力 に 出 力 し ま す 。 必 要 が あ れ ば 、 バ ッ ク ス ラ ッ シ ュ が 改 行 を エ ス ケ ー プ す る た め に 使 用 さ れ ま す 。 全 て の 補 完 候 補 が 生 成 さ れ た 後 で 、 −X オ プ シ ョ ン で 指 定 さ れ た フ ィ ル タ が 補 完 候 補 に 作 用 し ま す 。 フ ィ ル タ は 、 パ ス 名 展 開 で 使 用 さ れ た よ う な パ タ ー ン で す 。 パ タ ー ン 中 の & は 補 完 さ れ る 単 語 に 置 換 さ れ ま す 。 文 字 通 り の & は バ ッ ク ス ラ ッ シ ュ で エ ス ケ ー プ し ま す 。 バ ッ ク ス ラ ッ シ ュ は マ ッ チ を 試 み る 前 に 削 除 さ れ ま す 。 パ タ ー ン に マ ッ チ し た 補 完 は 候 補 か ら 削 除 さ れ ま す 。 先 行 す る ! は パ タ ー ン を 否 定 し ま す 。 こ の 場 合 、 パ タ ー ン に マ ッ チ し な か っ た 補 完 が 削 除 さ れ ま す 。 最 後 に 、 −P−S オ プ シ ョ ン で 指 定 さ れ た 前 置 部 分 と 後 置 部 分 が 補 完 候 補 の そ れ ぞ れ に 加 え ら れ ま す 。 そ し て 結 果 が readline 補 完 コ ー ド に 補 完 候 補 の リ ス ト と し て 返 さ れ ま す 。 直 前 に 行 わ れ た 動 作 が 何 に も マ ッ チ せ ず 、 補 完 仕 様 が 定 義 さ れ た と き に −o dirnames オ プ シ ョ ン が complete に 与 え ら れ て い れ ば 、 デ ィ レ ク ト リ 名 へ の 補 完 が 試 み ら れ ま す 。 補 完 仕 様 が 定 義 さ れ た と き に −o plusdirs オ プ シ ョ ン が complete に 与 え ら れ て い れ ば 、 デ ィ レ ク ト リ 名 へ の 補 完 が 試 み ら れ 、 マ ッ チ し た 候 補 が 全 て ほ か の 動 作 の 結 果 に 付 け 加 え ら れ ま す 。 デ フ ォ ル ト で は 、 補 完 仕 様 が 見 つ か っ た 場 合 、 そ れ が 生 成 し た も の が な ん で あ れ 、 全 て の 補 完 候 補 の リ ス ト と し て 、 補 完 コ ー ド に 返 さ れ ま す 。 デ フ ォ ル ト の bash 補 完 は 試 み ら れ ず 、 readline の デ フ ォ ル ト の フ ァ イ ル 名 補 完 は 無 効 に な り ま す 。 補 完 仕 様 が 定 義 さ れ た と き に −o bashdefault オ プ シ ョ ン が complete に 与 え ら れ て い れ ば 、 補 完 仕 様 が 何 に も マ ッ チ し な け れ ば bash の デ フ ォ ル ト の 補 完 が 試 み ら れ ま す 。 補 完 仕 様 が 定 義 さ れ た と き に −o default オ プ シ ョ ン が complete に 与 え ら れ て い れ ば 、 補 完 仕 様 が (試 み ら れ て い れ ば 、 デ フ ォ ル ト の bash の 補 完 も ) 何 に も マ ッ チ し な け れ ば readline の デ フ ォ ル ト の 補 完 が 行 わ れ ま す 。 補 完 仕 様 で デ ィ レ ク ト リ 名 の 補 完 が 必 要 と さ れ る 場 合 、 プ ロ グ ラ ム 補 完 の 関 数 は readline に 、 デ ィ レ ク ト リ へ の シ ン ボ リ ッ ク リ ン ク に 補 完 さ れ た 名 前 の 最 後 に ス ラ ッ シ ュ を 追 加 さ せ ま す 。 こ れ は readline の 変 数 mark−symlinked−directories の 設 定 に 関 わ ら ず 、 readline の 変 数 mark−directories の 値 に 左 右 さ れ ま す 。 動 的 に 補 完 を 変 え る た め の 方 法 が あ り ま す 。 こ れ は complete −D で 指 定 さ れ た デ フ ォ ル ト の 補 完 と 組 み 合 わ せ た と き に 非 常 に 便 利 で す 。 補 完 の 処 理 の た め に 実 行 さ れ た シ ェ ル 関 数 は 、 終 了 ス テ ー タ ス と し て 124 を 返 す こ と で 、 補 完 を 再 度 試 み る こ と を 指 示 で き ま す 。 シ ェ ル 関 数 が 124 を 返 し 、 補 完 が 試 み ら れ る コ マ ン ド (関 数 が 実 行 さ れ る と き の 第 1 引 き 数 ) に 対 し て 定 義 さ れ た 補 完 仕 様 が 変 更 さ れ て い れ ば 、 プ ロ グ ラ ム 補 完 は コ マ ン ド の 新 し い 補 完 仕 様 を 探 す た め に 最 初 か ら や り 直 さ れ ま す 。 こ れ に よ り 一 連 の 補 完 が 、 一 度 に 読 み 込 ま れ る の で は な く 、 補 完 が 試 み ら れ る と き に 動 的 に 組 み 立 て ら れ ま す 。 例 え ば 、 補 完 仕 様 の ラ イ ブ ラ リ が あ り 、 そ れ ぞ れ が コ マ ン ド の 名 前 に 合 わ せ た フ ァ イ ル に 保 存 さ れ て い る と 仮 定 す る と 、 以 下 の デ フ ォ ル ト の 補 完 関 数 は 補 完 を 動 的 に 読 み 込 み ま す 。

_completion_loader()
{
. "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124 }
complete −D −F _completion_loader

履 歴 (HISTORY)

−o history オ プ シ ョ ン を 組 み 込 み コ マ ン ド の set で 有 効 に す る と 、 コ マ ン ド 履 歴 (command history) (以 前 に 入 力 し た コ マ ン ド の リ ス ト ) に ア ク セ ス で き る よ う に な り ま す 。 変 数 HISTSIZE の 値 が 、 履 歴 リ ス ト に 保 存 す る コ マ ン ド の 数 に な り ま す 。 過 去 に 入 力 し た コ マ ン ド の う ち 、 最 新 HISTSIZE 個 分 (デ フ ォ ル ト は 500 個 ) の テ キ ス ト が 保 存 さ れ ま す 。 シ ェ ル は 各 コ マ ン ド を 、 パ ラ メ ー タ 展 開 や 変 数 展 開 (前 述 の 展 開 を 参 照 ) を 行 う 前 の 形 で 履 歴 リ ス ト に 格 納 し ま す 。 た だ し 、 履 歴 展 開 は 実 行 し て か ら 格 納 し ま す 。 履 歴 展 開 は シ ェ ル 変 数 HISTIGNORE HISTCONTROL の 値 に 従 っ て 実 行 さ れ ま す 。 起 動 時 に 、 履 歴 は 変 数 HISTFILE (デ フ ォ ル ト は ~/.bash_history) が 示 す フ ァ イ ル の 内 容 で 初 期 化 さ れ ま す 。 HISTFILE で 指 定 さ れ た フ ァ イ ル は 、 HISTFILESIZE で 指 定 さ れ た 行 数 を 越 え な い よ う に 、 必 要 に 応 じ て 切 り 詰 め ら れ ま す 。 履 歴 フ ァ イ ル を 読 み 込 む と き に 、 履 歴 の コ メ ン ト 文 字 で 始 ま り 直 後 に 数 字 が 続 く 行 は 、 直 前 の 履 歴 行 の タ イ ム ス タ ン プ と し て 解 釈 さ れ ま す 。 こ う し た タ イ ム ス タ ン プ を 表 示 す る か ど う か は 、 変 数 HISTTIMEFORMAT の 値 に よ り 決 ま り ま す 。 対 話 的 な シ ェ ル が 終 了 す る 際 に は 、 最 近 の $HISTSIZE 個 の 行 が 履 歴 リ ス ト か ら $HISTFILE に コ ピ ー さ れ ま す 。 シ ェ ル オ プ シ ョ ン histappend ( シ ェ ル の 組 み 込 み コ マ ン ド の 項 の shopt の 説 明 を 参 照 ) が 有 効 に な っ て い る と 、 こ れ ら の 行 が 履 歴 フ ァ イ ル の 末 尾 に 追 加 さ れ ま す 。 こ の オ プ シ ョ ン が 無 効 な ら ば 、 履 歴 フ ァ イ ル は 上 書 き さ れ ま す 。 HISTFILE が 設 定 さ れ て い な い か 、 履 歴 フ ァ イ ル が 書 き 込 め な い 状 態 だ と 、 履 歴 は 保 存 さ れ ま せ ん 。 変 数 HISTTIMEFORMAT が 設 定 さ れ て い る 場 合 、 シ ェ ル の セ ッ シ ョ ン を 越 え て 保 持 さ れ る よ う 、 タ イ ム ス タ ン プ が 履 歴 の コ メ ン ト 文 字 を 付 け て 履 歴 フ ァ イ ル に 書 き 込 ま れ ま す 。 履 歴 の コ メ ン ト 文 字 は 、 タ イ ム ス タ ン プ を ほ か の 履 歴 行 と 区 別 す る た め に 使 わ れ ま す 。 履 歴 の 保 存 を 行 っ た 後 に は 、 履 歴 フ ァ イ ル は 行 数 が HISTFILESIZE 行 を 越 え な い よ う に 切 り 詰 め ら れ ま す 。 HISTFILESIZE が 設 定 さ れ て い な け れ ば 、 切 り 詰 め は 行 わ れ ま せ ん 。 組 み 込 み コ マ ン ド fc (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) を 用 い る と 、 履 歴 リ ス ト の 一 部 を 表 示 ・ 編 集 し て 再 実 行 で き ま す 。 組 み 込 み コ マ ン ド の history を 用 い る と 、 履 歴 リ ス ト を 表 示 ・ 編 集 し た り 、 履 歴 フ ァ イ ル を 操 作 し た り で き ま す 。 コ マ ン ド ラ イ ン 編 集 を 使 っ て い る 場 合 に は 、 各 編 集 モ ー ド で い ろ い ろ な 検 索 コ マ ン ド が 利 用 で き 、 履 歴 リ ス ト へ ア ク セ ス で き ま す 。 こ の シ ェ ル で は 、 ど の コ マ ン ド が 履 歴 リ ス ト に 保 存 さ れ る か を 制 御 で き ま す 。 HISTCONTROL 変 数 と HISTIGNORE 変 数 を 設 定 す る と 、 シ ェ ル は 入 力 さ れ た コ マ ン ド の 一 部 し か 保 存 し な く な り ま す 。 シ ェ ル オ プ シ ョ ン の cmdhist を 有 効 に す る と 、 シ ェ ル は 複 数 行 に 別 れ て い る コ マ ン ド の 各 行 を 同 じ 履 歴 エ ン ト リ に 保 存 し よ う と し ま す 。 こ の 際 に は 、 文 法 的 な 正 し さ を 保 つ た め に セ ミ コ ロ ン が 必 要 に 応 じ て 追 加 さ れ ま す 。 シ ェ ル オ プ シ ョ ン の lithist を 有 効 に す る と 、 こ の シ ェ ル は 行 の 途 中 に セ ミ コ ロ ン で は な く 改 行 文 字 を 置 く 形 で コ マ ン ド を 保 存 し ま す 。 シ ェ ル オ プ シ ョ ン の 設 定 と 設 定 取 り 消 し に つ い て は 、 後 述 の シ ェ ル の 組 み 込 み コ マ ン ド に お け る 説 明 を 参 照 し て く だ さ い 。

履 歴 の 展 開

こ の シ ェ ル は 、 csh の 履 歴 展 開 と 同 じ よ う な 履 歴 機 能 を サ ポ ー ト し て い ま す 。 こ の セ ク シ ョ ン で は 、 履 歴 展 開 で 使 用 で き る 記 法 ・ 機 能 を 説 明 し ま す 。 こ の 機 能 は 対 話 的 シ ェ ル な ら ば デ フ ォ ル ト で 有 効 に な っ て い ま す が 、 組 み 込 み コ マ ン ド set+H オ プ シ ョ ン (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) で 無 効 に で き ま す 。 非 対 話 的 シ ェ ル の 場 合 は 、 デ フ ォ ル ト で は 履 歴 展 開 は 行 わ れ ま せ ん 。 履 歴 展 開 は 、 履 歴 リ ス ト 中 の 単 語 を 入 力 ス ト リ ー ム に 入 れ ま す 。 こ の 機 能 を 利 用 す る と 、 コ マ ン ド を 繰 り 返 し た り 、 前 の コ マ ン ド で 指 定 し た オ プ シ ョ ン を 現 在 の 入 力 行 に 挿 入 し た り 、 前 の コ マ ン ド の 誤 り を 手 早 く 直 し た り 、 と い っ た こ と が 簡 単 に で き る よ う に な り ま す 。 履 歴 展 開 が 実 行 さ れ る の は 、 入 力 行 全 体 を 読 み 込 ん だ 直 後 で あ り 、 シ ェ ル が 行 を 単 語 に 分 割 す る よ り も 前 で す 。 履 歴 展 開 の 動 作 は 2 段 階 で 行 わ れ ま す 。 ま ず 最 初 に 、 置 換 に 使 う 行 を 履 歴 リ ス ト か ら 選 び ま す 。 次 に 、 そ の 行 の ど の 部 分 を 現 在 の 行 に 書 き 込 む か を 選 択 し ま す 。 履 歴 リ ス ト か ら 選 ば れ た 行 は イ ベ ン ト (event) と 呼 ば れ 、 こ の 行 の う ち 動 作 の 対 象 と な る 部 分 を 単 語 列 (words)と 呼 び ま す 。 様 々 な 修 飾 子 (modifier) が 利 用 で き 、 選 択 さ れ た 単 語 列 の 操 作 が 可 能 に な っ て い ま す 。 行 の 単 語 へ の 分 割 は 入 力 を 読 み 込 む と き と 同 じ よ う に 行 わ れ る の で 、 メ タ 文 字 で 区 切 ら れ た 複 数 の 単 語 を ク ォ ー ト で 括 っ た も の は 1 つ の 単 語 と み な さ れ ま す 。 履 歴 展 開 が 行 わ れ る の は 、 履 歴 展 開 文 字 が 現 わ れ た と き で す 。 履 歴 展 開 文 字 は デ フ ォ ル ト で は ! で す 。 履 歴 展 開 文 字 を ク ォ ー ト で き る の は 、 バ ッ ク ス ラ ッ シ ュ (\) と シ ン グ ル ク ォ ー ト だ け で す 。 履 歴 展 開 文 字 の 直 後 に あ っ て 、 ク ォ ー ト さ れ て い な く て も 、 履 歴 展 開 さ れ な い 文 字 が あ り ま す 。 空 白 文 字 、 タ ブ 文 字 、 改 行 文 字 、 復 帰 文 字 、 = で す 。 シ ェ ル オ プ シ ョ ン の extglob が 有 効 に な っ て い る 場 合 に は 、 ( も 展 開 さ れ ま せ ん 。 組 み 込 み コ マ ン ド の shopt を 用 い て 、 何 種 類 か あ る シ ェ ル オ プ シ ョ ン を 設 定 す る と 、 履 歴 展 開 の 動 作 を 調 整 で き ま す 。 シ ェ ル オ プ シ ョ ン の histverify が 有 効 で (組 み 込 み コ マ ン ド shopt の 説 明 を 参 照 )、 か つ readline が 使 わ れ て い る 場 合 に は 、 履 歴 置 換 を 行 っ た 結 果 は す ぐ に は シ ェ ル の パ ー ザ に 渡 さ れ ま せ ん 。 展 開 さ れ た 行 は readline の 編 集 バ ッ フ ァ に 再 び 読 み 込 ま れ 、 さ ら に 編 集 が 行 え る 状 態 に な り ま す 。 readline を 使 用 し て お り 、 か つ シ ェ ル オ プ シ ョ ン の histreedit が 有 効 で あ る 場 合 、 履 歴 置 換 が 失 敗 し て も そ の 結 果 は readline の 編 集 バ ッ フ ァ に 再 び 読 み 込 ま れ 、 訂 正 で き る 状 態 と な り ま す 。 組 み 込 み コ マ ン ド history−p オ プ シ ョ ン を 使 う と 、 実 際 に 履 歴 展 開 を 行 う 前 に 、 ど の よ う に 展 開 さ れ る の か を 見 る こ と が で き ま す 。 組 み 込 み コ マ ン ド history−s オ プ シ ョ ン を 使 う と 、 実 際 に コ マ ン ド の 実 行 を せ ず に 、 コ マ ン ド を 履 歴 リ ス ト の 末 尾 に 追 加 で き 、 そ れ 以 降 の 呼 び 出 し で 利 用 で き る よ う に な り ま す 。 こ の シ ェ ル で は 、 履 歴 展 開 機 構 で 使 う い ろ い ろ な 文 字 を 制 御 で き ま す (前 述 の シ ェ ル 変 数 の 項 目 に お け る histchars の 説 明 を 参 照 )。 シ ェ ル は 、 履 歴 フ ァ イ ル に 書 き 込 む と き に 、 履 歴 の コ メ ン ト 文 字 を 使 っ て 、 履 歴 の タ イ ム ス タ ン プ で あ る こ と が 分 か る よ う に し ま す 。 イ ベ ン ト 指 示 子 (Event Designator) イ ベ ン ト 指 示 子 は 、 履 歴 リ ス ト 中 の コ マ ン ド ラ イ ン エ ン ト リ を 参 照 す る も の で す 。 絶 対 位 置 の 参 照 で な い 限 り 、 イ ベ ン ト は 履 歴 リ ス ト 内 の 現 在 の 位 置 か ら の 相 対 的 な 位 置 を 示 し ま す 。

! 履 歴 置 換 を 開 始 し ま す 。 た だ し 、 ブ ラ ン ク 文 字 、 改 行 文 字 、

= 、 (

(シ ェ ル オ プ シ ョ ン extglob が 組 み 込 み コ マ ン ド shopt に よ っ て 有 効 に な っ て い る 場 合 ) の い ず れ か が 後 に 続 く 場 合 は 除 き ま す 。

!n

n 個 目 の コ マ ン ド ラ イ ン を 参 照 し ま す 。

!−n

現 在 か ら n 個 前 の コ マ ン ド を 参 照 し ま す 。

!! 直 前 の コ マ

ン ド を 参 照 し ま す 。 ’!−1’ と 同 義 で す 。

!string

string で 始 ま る コ マ ン ド の う ち 、 履 歴 リ ス ト 中 の 現 在 位 置 以 前 で 、 一 番 近 い と こ ろ で 実 行 し た も の を 参 照 し ま す 。

!?string[?]

string を 含 む コ マ ン ド の う ち 、 履 歴 リ ス ト 中 の 現 在 位 置 以 前 で 、 一 番 近 い と こ ろ で 実 行 し た も の を 参 照 し ま す 。 string の 直 後 が 改 行 文 字 な ら ば 、 最 後 の ? は 省 略 し て も か ま い ま せ ん 。

^ string1 ^ string2 ^ 簡 易 置 換 。 string1string2 に 置 換 し て 直 前 の コ マ ン ド を 繰 り 返 し ま す 。 “!!:s/string1/string2/” と 同 義 で す (後 述 の 修 飾 子 を 参 照 )。

!# こ れ ま で に 打 ち 込 ん だ コ マ ン ド ラ イ ン 全 体 。 単 語 指 示 子

(Word Designators) 単 語 指 示 子 (word designator) は 、 イ ベ ン ト か ら 所 望 の 欲 し い 単 語 を 選 ぶ と き に 用 い ら れ ま す 。 イ ベ ン ト 指 定 と 単 語 指 示 子 の セ パ レ ー タ に は : を 用 い ま す 。 単 語 指 示 子 が ^, $, *, , % の い ず れ か で 始 ま る 場 合 に は 、 こ の セ パ レ ー タ は 省 略 で き ま す 。 単 語 に は 行 の 先 頭 か ら 順 に 番 号 が 振 ら れ 、 先 頭 の 単 語 が 0 に な り ま す 。 単 語 は 現 在 の 行 に 、 空 白 1 つ で 区 切 ら れ て 挿 入 さ れ ま す 。
0 (ゼ ロ )

0 番 目 の 単 語 。 シ ェ ル に と っ て は 、 コ マ ン ド を 表 す 単 語 に な り ま す 。

n

n 番 目 の 単 語 。

^

最 初 の 引 き 数 。 つ ま り 1 番 目 の 単 語 で す 。
$
最 後 の 引 き 数 。
%

’?string?’ 検 索 に マ ッ チ す る 、 一 番 現 在 に 近 い 単 語 。

xy 単 語 の 範 囲 。

’0−y’ の 省 略 形 と し て ’−y’ が 使 え ま す 。

*

0 番 目 を 除 く 全 て の 単 語 。 こ れ は ’1−$’ の 別 表 現 で す 。 イ ベ ン ト 中 に 単 語 が 1 つ し か な い 場 合 に * を 使 っ て も エ ラ ー に は な り ま せ ん 。 こ の 場 合 に は 空 文 字 列 が 返 さ れ ま す 。

x*

x−$ の 省 略 形 で す 。

x−

x* と 同 様 に x−$ の 省 略 形 で す が 、 た だ し 最 後 の 単 語 は 含 み ま せ ん 。

イ ベ ン ト 指 定 な し に 単 語 指 示 子 が 与 え ら れ た 場 合 、 直 前 の コ マ ン ド が イ ベ ン ト と し て 使 わ れ ま す 。 修 飾 子 (Modifiers) 単 語 指 示 子 (省 略 可 能 ) の 後 に は 、 1 個 以 上 の 以 下 に 示 す 修 飾 子 を 並 べ て 置 く こ と が で き ま す 。 そ れ ぞ れ の 修 飾 子 の 前 に は ’:’ を 付 け ま す 。

h パ ス 名 か ら 末 尾 に あ る 部 分

(フ ァ イ ル 名 ) を 取 り 除 き 、 前 の 方 (デ ィ

レ ク ト リ 部 ) だ け を 残 し ま す 。

t パ ス 名 か ら 前 の 方

(デ ィ レ ク ト リ 部 ) を 取 り 除 き 、 末 尾 に あ る 部 分

(フ ァ イ ル 名 ) だ け を 残 し ま す 。

r 末 尾 に あ る

.xxx 形 式 の サ フ ィ ッ ク ス を 取 り 除 き 、 ベ ー ス 名

(basename) だ け を 残 し ま す 。

e 末 尾 の サ フ ィ ッ ク ス だ け を 残 し て 、 全 て の 部 分 を 取 り 除 き ま す 。

p 新 し い コ マ ン ド を 表 示 し ま す が 、 実 行 は し ま せ ん 。

q 置 換 が 行 わ れ た 単 語 を ク ォ ー ト し 、 そ れ 以 上 の 置 換 が 行 わ れ な い よ う に し ま す 。

x

q と 同 じ よ う に 置 換 後 の 単 語 を ク ォ ー ト し ま す が 、 空 白 文 字 と 改 行 文 字 の と こ ろ で 単 語 に 分 割 し ま す 。

s/old/new/ イ ベ ン ト 行 で 最 初 に 現 わ れ た oldnew に 置 き 換 え ま す 。 / の 代 わ り に 任 意 の 区 切 り 文 字 を 使 う こ と も で き ま す 。 最 後 の 区 切 り 文 字 が イ ベ ン ト 行 の 最 後 の 文 字 な ら ば 、 こ れ は 省 略 で き ま す 。 バ ッ ク ス ラ ッ シ ュ 1 つ で ク ォ ー ト す れ ば 、 oldnew の 中 で 区 切 り 文 字 も 使 え ま す 。 new に & が 含 ま れ て い る 場 合 に は 、 & は old に 置 き 換 え ら れ ま す 。 バ ッ ク ス ラ ッ シ ュ 1 つ を 前 に 置 け ば & を ク ォ ー ト で き ま す 。 old が 空 文 字 列 な ら ば 、 最 後 に 置 換 さ れ た old が 設 定 さ れ ま す 。 以 前 に 履 歴 置 換 が 全 く 行 わ れ て い な い 場 合 に は 、 現 在 に 一 番 近 い !?string[?] の 検 索 で 使 わ れ た string が 設 定 さ れ ま す 。

& 直 前 の 置 換 を 繰 り 返 し ま す 。

g 変 更 を イ ベ ン ト 行 全 体 に 適 用 し ま す 。 こ れ は

:s

(例 :’:gs/old/new/’) や ’:&’ と 組 み 合 わ せ て 使 わ れ ま す 。 ’:s’ と 一 緒 に 使 っ た 場 合 に は 、 / の 代 わ り に 任 意 の 区 切 り 文 字 を 使 え ま す 。 ま た 、 最 後 の 区 切 り 文 字 が イ ベ ン ト 行 の 最 後 の 文 字 な ら ば 、 こ れ は 省 略 で き ま す 。 g の 別 名 と し て a を 使 う こ と も で き ま す 。

G こ の 修 飾 子 に 続 く

s’ 修 飾 子 を イ ベ ン ト 行 の 各 単 語 に 1 回 ず つ 適 用 し

ま す 。

シ ェ ル の 組 み 込 み コ マ ン ド

特 に 断 ら な い 限 り 、 こ の セ ク シ ョ ン で 説 明 さ れ て い る 組 み 込 み コ マ ン ド の う ち で 始 ま る オ プ シ ョ ン を 受 け 付 け る も の は 、 オ プ シ ョ ン の 終 わ り を 表 す −− も 受 け 付 け ま す 。 組 み 込 み コ マ ン ド :, true, false, test は オ プ シ ョ ン を 持 た ず 、 −− を 特 別 扱 い し ま せ ん 。 組 み 込 み コ マ ン ド exit, logout, break, continue, let, shift は 、 で 始 ま る 引 き 数 と し て 受 け 取 る の に 、 −− を 必 要 と し ま せ ん 。 そ の ほ か の 組 み 込 み コ マ ン ド は 、 受 け 取 る と 明 記 さ れ て い る オ プ シ ョ ン 以 外 を 引 き 数 と し て 受 け 取 り 、 で 始 ま る 引 き 数 を 不 正 な オ プ シ ョ ン を と て 解 釈 し ま す 。 こ の 解 釈 を 防 ぐ に は −− が 必 要 で す 。 :

[arguments] 何 も し ま せ ん 。 こ の コ マ ン ド は arguments を 展 開 し 、 指 定 さ れ た リ ダ イ レ ク ト を 実 行 す る 以 外 に は 何 も 行 い ま せ ん 。 終 了 コ ー ド 0 を 返 し ま す 。
.
filename [arguments]
source
filename [arguments]

filename か ら コ マ ン ド を 読 み 込 み 、 現 在 の シ ェ ル 環 境 の 下 で 実 行 し ま す 。 filename 内 の 最 後 に 実 行 し た コ マ ン ド の 終 了 ス テ ー タ ス を 返 し ま す 。 filename に ス ラ ッ シ ュ が 含 ま れ て い な い 場 合 、 filenamePATH に 含 ま れ る デ ィ レ ク ト リ か ら 探 さ れ ま す 。 PATH 内 で 検 索 さ れ る フ ァ イ ル は 、 実 行 可 能 で あ る 必 要 は あ り ま せ ん 。 bashposix モ ー ド 以 外 で 動 作 し て い る と き は 、 PATH 中 で フ ァ イ ル を 見 つ け ら れ な か っ た 場 合 に 、 カ レ ン ト デ ィ レ ク ト リ が 検 索 さ れ ま す 。 組 み 込 み コ マ ン ド shopt に 対 す る sourcepath オ プ シ ョ ン が 無 効 に さ れ て い る 場 合 、 PATH の 検 索 は 行 わ れ ま せ ん 。 何 ら か の arguments が 指 定 さ れ た 場 合 、 こ れ ら の 引 き 数 は filename を 実 行 し た と き の 位 置 パ ラ メ ー タ と な り ま す 。 指 定 さ れ な か っ た 場 合 は 、 位 置 パ ラ メ ー タ は 変 更 さ れ ま せ ん 。 返 却 ス テ ー タ ス は ス ク リ プ ト 内 で 最 後 に 実 行 し た コ マ ン ド の ス テ ー タ ス で す (コ マ ン ド が 全 く 実 行 さ れ な け れ ば 0 で す )。 filename が 見 つ か ら な い 場 合 や 読 み 込 め な い 場 合 に は 偽 と な り ま す 。

alias [−p] [name[=value] ...]

alias コ マ ン ド を 引 き 数 を 付 け ず に (あ る い は −p オ プ シ ョ ン を 付 け て ) 実 行 す る と 、 エ イ リ ア ス の リ ス ト が 「 alias name=value」 の 形 で 標 準 出 力 に 出 力 さ れ ま す 。 引 き 数 を 与 え た 場 合 に は 、 value を 与 え ら れ た name そ れ ぞ れ に 対 す る エ イ リ ア ス が 定 義 さ れ ま す 。 value の 末 尾 に 空 白 が あ る と 、 エ イ リ ア ス が 展 開 さ れ た と き に 、 空 白 の 次 の 単 語 に つ い て エ イ リ ア ス 置 換 が あ る か ど う か 調 べ ら れ ま す 。 引 き 数 リ ス ト 中 に value が 与 え ら れ て い な い name が あ っ た 場 合 は 、 そ れ ぞ れ に 対 し て 名 前 と エ イ リ ア ス の 値 が 出 力 さ れ ま す 。 エ イ リ ア ス が 定 義 さ れ て い な い name が 指 定 さ れ た 場 合 以 外 は 、 alias は 真 を 返 し ま す 。

bg [jobspec ...] サ ス ペ ン ド さ れ て い る ジ ョ ブ jobspec を バ ッ ク グ ラ ウ ン ド で 実 行 再 開 し ま す 。 こ の ジ ョ ブ は 、 初 め か ら & を 付 け て 起 動 さ れ て い た か の よ う に 動 作 を 続 け ま す 。 jobspec が な い 場 合 に は 、 シ ェ ル が 記 録 し て い る カ レ ン ト ジ ョ ブ (current job) が 使 わ れ ま す 。 bg jobspec は 通 常 0 を 返 し ま す が 、 ジ ョ ブ 制 御 が 無 効 で あ る と き に 実 行 し た 場 合 や 、 ジ ョ ブ 制 御 が 有 効 で あ っ て も jobspec が 有 効 な ジ ョ ブ を 指 定 し て い な い 場 合 や jobspec が ジ ョ ブ 制 御 な し で 開 始 し た ジ ョ ブ を 指 定 し て い る 場 合 は 異 な る 値 を 返 し ま す 。
bind
[−m keymap] [−lpsvPSV]
bind
[−m keymap] [−q function] [−u function] [−r keyseq]
bind
[−m keymap] −f filename
bind
[−m keymap] −x keyseq:shell−command
bind
[−m keymap] keyseq:function−name
bind
readline−command

readline の 現 在 の キ ー 割 り 当 て と 関 数 割 り 当 て を 表 示 し た り 、 キ ー シ ー ケ ン ス を readline の 関 数 や マ ク ロ に 割 り 当 て た り 、 readline の 変 数 を 設 定 し た り し ま す 。 オ プ シ ョ ン 以 外 の 引 き 数 は す べ て 、 .inputrc , に 書 く の と 同 じ 形 式 の コ マ ン ド で す が 、 そ れ ぞ れ の 割 り 当 て や コ マ ン ド は 独 立 し た 引 き 数 と し て 渡 さ な け れ ば な り ま せ ん 。 例 え ば ’"\C−x\C−r": re−read−init−file’ の よ う に 指 定 し ま す 。 オ プ シ ョ ン を 指 定 し た 場 合 に は 、 以 下 の よ う な 意 味 を 持 ち ま す :
−m
keymap キ ー マ ッ プ keymap を 、 以 降 の 割 り 当 て に よ っ て 変 更 し ま す 。 指 定 で き る keymap 名 は 、 emacs, emacs−standard, emacs−meta, emacs−ctlx, vi, vi−move, vi−command, vi−insert で す 。 vivi−command と 同 じ で す 。 ま た emacsemacs−standard と 同 じ で す 。

−l

readline 関 数 の 名 前 を 全 て リ ス ト 表 示 し ま す 。

−p

readline の 関 数 の 名 前 と 割 り 当 て を 表 示 し ま す 。 表 示 は 、 再 び 読 み 込 み で き る 形 式 で 出 力 さ れ ま す 。

−P

readline の 関 数 の 現 在 の 名 前 と 割 り 当 て を リ ス ト 表 示 し ま す 。

−s

マ ク ロ に 割 り 当 て ら れ た readline の キ ー シ ー ケ ン ス と 、 マ ク ロ が 出 力 す る 文 字 列 を 表 示 し ま す 。 表 示 は 、 再 び 読 み 込 み で き る 形 式 で 出 力 さ れ ま す 。

−S

マ ク ロ に 割 り 当 て ら れ た readline の キ ー シ ー ケ ン ス と 、 マ ク ロ が 出 力 す る 文 字 列 を 表 示 し ま す 。
−v

readline の 変 数 名 と 値 を 表 示 し ま す 。 表 示 は 、 再 び 読 み 込 み で き る 形 式 で 出 力 さ れ ま す 。

−V

readline の 現 在 の 変 数 名 と 値 を リ ス ト 表 示 し ま す 。

−f filename キ ー 割 り 当 て を filename か ら 読 み 込 み ま す 。
−q
function 指 定 さ れ た function を 呼 び 出 す キ ー を 問 い 合 わ せ ま す 。
−u
function 指 定 さ れ た function に 割 り 当 て ら れ て い る キ ー の 割 り 当 て を 全 て 取 り 消 し ま す 。
−r
keyseq

keyseq に 対 す る 現 在 の 割 り 当 て を 削 除 し ま す 。

−x keyseq:shell−command

keyseq が 押 さ れ る た び に 、 shell−command が 実 行 さ れ る よ う に し ま す 。 shell−command を 実 行 す る と き 、 シ ェ ル は 変 数 READLINE_LINE readline の 編 集 バ ッ フ ァ の 内 容 を 設 定 し 、 変 数 READLINE_POINT に 現 在 の 挿 入 ポ イ ン ト の 位 置 を 設 定 し ま す 。 実 行 し た コ マ ン ド が READLINE_LINEREADLINE_POINT の 値 を 変 更 し た 場 合 、 新 し い 値 が 編 集 の 状 態 に 反 映 さ れ ま す 。 認 識 で き な い オ プ シ ョ ン が 与 え ら れ た 場 合 や エ ラ ー が 起 き た 場 合 以 外 は 、 返 り 値 は 0 に な り ま す 。

break [n]

for, while, until, select の ル ー プ か ら 抜 け ま す 。 n が 指 定 さ れ て い れ ば 、 n レ ベ ル 分 の ル ー プ を break し ま す 。 n は 1 以 上 で な け れ ば な り ま せ ん 。 n が ル ー プ の 深 さ よ り も 大 き い 場 合 に は 、 全 て の ル ー プ か ら 抜 け ま す 。 n が 1 未 満 の 場 合 を 除 け ば 、 返 り 値 は 0 で す 。

builtin shell−builtin [arguments] 指 定 さ れ た シ ェ ル 組 み 込 み コ マ ン ド を 実 行 し ま す 。 コ マ ン ド に は arguments を 引 き 数 と し て 渡 し 、 こ の コ マ ン ド の 終 了 ス テ ー タ ス を 返 し ま す 。 こ れ は シ ェ ル 組 み 込 み コ マ ン ド と 同 じ 名 前 の 関 数 を 定 義 す る と き に 便 利 で 、 そ の 関 数 内 で 組 み 込 み コ マ ン ド の 機 能 を 使 う こ と が で き ま す 。 組 み 込 み コ マ ン ド cd は 普 通 、 こ れ を 使 っ て 再 定 義 さ れ ま す 。 shell−builtin が シ ェ ル 組 み 込 み コ マ ン ド で な け れ ば 、 終 了 ス テ ー タ ス は 偽 と な り ま す 。
caller
[expr] 実 行 中 の サ ブ ル ー チ ン (シ ェ ル 関 数 や 、 組 み 込 み コ マ ン ド .source で 呼 び 出 し た ス ク リ プ ト ) 呼 び 出 し の コ ン テ キ ス ト を 返 し ま す 。 expr が 指 定 さ れ て い な け れ ば 、 caller は 現 在 の サ ブ ル ー チ ン 呼 び 出 し の 行 番 号 と ソ ー ス フ ァ イ ル 名 を 表 示 し ま す expr に 負 で な い 整 数 が 与 え ら れ た 場 合 、 caller は 、 現 在 の 呼 び 出 し ス タ ッ ク 中 で 指 定 し た 位 置 の 行 番 号 、 サ ブ ル ー チ ン 名 、 ソ ー ス フ ァ イ ル を 表 示 し ま す 。 ス タ ッ ク ト レ ー ス を 表 示 す る 場 合 な ど に 、 範 囲 外 の 情 報 が 使 わ れ る か も し れ ま せ ん 。 現 在 の フ レ ー ム は フ レ ー ム 0 で す 。 シ ェ ル が サ ブ ル ー チ ン を 呼 び 出 し て い な い 場 合 や 、 expr が 呼 び 出 し ス タ ッ ク の 有 効 な 位 置 に 相 当 し な い 場 合 を 除 け ば 、 返 り 値 は 0 で す 。
cd
[−L|[−P [−e]]] [dir] カ レ ン ト デ ィ レ ク ト リ を dir に 変 更 し ま す 。 変 数 HOME の 値 が dir の デ フ ォ ル ト 値 で す 。 変 数 CDPATH は 、 dir を 含 む デ ィ レ ク ト リ の 検 索 パ ス を 定 義 し ま す 。 CDPATH 内 で は 候 補 デ ィ レ ク ト リ 名 は コ ロ ン (:) で 区 切 り ま す 。 CDPATH 中 に 空 の デ ィ レ ク ト リ 名 が あ る 場 合 、 こ れ は カ レ ン ト デ ィ レ ク ト リ (つ ま り “.”) を 意 味 し ま す 。 dir が ス ラ ッ シ ュ (/) で 始 ま る 場 合 に は 、 CDPATH は 使 わ れ ま せ ん 。 −P オ プ シ ョ ン は 、 シ ン ボ リ ッ ク リ ン ク を 辿 ら な い で 物 理 的 な デ ィ レ ク ト リ 構 造 を 使 う よ う に 指 示 し ま す (組 み 込 み コ マ ン ド set−P オ プ シ ョ ン も 参 照 )。 −L オ プ シ ョ ン を 指 定 す る と 、 シ ン ボ リ ッ ク リ ン ク を 辿 る よ う に な り ま す 。 −e オ プ シ ョ ン を −P オ プ シ ョ ン と 同 時 に 指 定 す る と 、 デ ィ レ ク ト リ の 変 更 が 成 功 し た 後 に カ レ ン ト デ ィ レ ク ト リ が 判 定 で き な い 場 合 、 cd は 失 敗 の ス テ ー タ ス を 返 し ま す 。 引 き 数 に を 指 定 す る の は 、 $OLDPWD を 指 定 す る の と 同 じ 意 味 で す 。 CDPATH 内 の 空 以 外 の デ ィ レ ク ト リ 名 が 使 わ れ た と き や 、 が 最 初 の 引 き 数 の と き に 、 デ ィ レ ク ト リ の 変 更 が 成 功 す る と 、 新 し い デ ィ レ ク ト リ の 絶 対 パ ス 名 が 標 準 出 力 に 書 か れ ま す 。 デ ィ レ ク ト リ の 変 更 が 成 功 し た 場 合 に は 返 り 値 は 真 に な り 、 そ う で な い 場 合 に は 偽 に な り ま す 。
command
[−pVv] command [arg ...]

command に 引 き 数 args を 付 け て 実 行 し ま す 。 た だ し 、 シ ェ ル 関 数 の 通 常 の 参 照 は 行 い ま せ ん 。 組 み 込 み コ マ ン ド と PATH 内 で 見 つ か る コ マ ン ド だ け が 実 行 さ れ ま す 。 −p オ プ シ ョ ン が 与 え ら れ る と 、 command の 検 索 を 行 う 際 に PATH の デ フ ォ ル ト 値 が 使 わ れ ま す 。 こ れ に よ り 、 全 て の 標 準 ユ ー テ ィ リ テ ィ を 確 実 に 見 つ け ら れ ま す 。 −V オ プ シ ョ ン ま た は −v オ プ シ ョ ン を 与 え る と 、 command の 説 明 が 出 力 さ れ ま す 。 −v オ プ シ ョ ン で は 、 command を 起 動 す る と き に 使 わ れ る コ マ ン ド や フ ァ イ ル 名 を 示 す 単 語 が 表 示 さ れ ま す 。 −V で は さ ら に 詳 し い 説 明 が 表 示 さ れ ま す 。 −V オ プ シ ョ ン や −v オ プ シ ョ ン を 与 え た 場 合 、 終 了 ス テ ー タ ス は command が 見 つ か れ ば 0 と な り 、 見 つ か ら な け れ ば 1 と な り ま す 。 ど ち ら の オ プ シ ョ ン も 与 え な か っ た 場 合 に 、 エ ラ ー が 起 き た り 、 command を 見 つ け ら れ な か っ た り す る と 、 終 了 ス テ ー タ ス は 127 に な り ま す 。 そ れ 以 外 の 場 合 に は 、 組 み 込 み コ マ ン ド command の 終 了 ス テ ー タ ス は 、 command の 終 了 ス テ ー タ ス で す 。

compgen [option] [word]

option に 従 っ て 、 word に マ ッ チ す る 補 完 候 補 の リ ス ト を 生 成 し ま す 。 オ プ シ ョ ン に は complete 組 み 込 み コ マ ン ド と 同 じ も の が 指 定 で き ま す が 、 −p−r は 指 定 で き ま せ ん 。 マ ッ チ の リ ス ト は 標 準 出 力 に 出 力 さ れ ま す 。 −F−C オ プ シ ョ ン を 使 用 し た と き は 、 プ ロ グ ラ ム 補 完 機 能 に よ っ て 設 定 さ れ た 様 々 な シ ェ ル 変 数 は 、 利 用 可 能 で あ っ て も 有 用 な 値 を 持 ち ま せ ん 。 マ ッ チ の リ ス ト は 、 同 じ フ ラ グ に よ る 補 完 仕 様 で プ ロ グ ラ ム 補 完 の コ ー ド が 直 接 生 成 し た か の よ う に 生 成 さ れ ま す 。 word が 指 定 さ れ る と 、 word に マ ッ チ す る 補 完 だ け が 表 示 さ れ ま す 。 戻 り 値 は 、 無 効 な オ プ シ ョ ン が 指 定 さ れ た 場 合 や マ ッ チ が 生 成 さ れ な か っ た 場 合 以 外 は 真 に な り ま す 。

complete [−abcdefgjksuv] [−o comp−option] [−DE] [−A action] [−G
globpat
] [−W wordlist] [−F function] [−C command]

[−X filterpat] [−P prefix] [−S suffix] name [name ...]

complete −pr [−DE] [name ...] 各 name の 引 き 数 を 、 ど の よ う に 補 完 す る の か を 指 定 し ま す 。 −p オ プ シ ョ ン が 指 定 さ れ た 場 合 や 、 何 も オ プ シ ョ ン が 指 定 さ れ な か っ た 場 合 は 、 現 在 の 補 完 仕 様 が (入 力 と し て 再 利 用 で き る 形 で ) 出 力 さ れ ま す 。 −r オ プ シ ョ ン は 、 そ れ ぞ れ の name の 補 完 指 定 を 削 除 し ま す 。 name が 指 定 さ れ な か っ た 場 合 は 全 て の 補 完 指 定 を 削 除 し ま す 。 −D オ プ シ ョ ン は 、 残 り の オ プ シ ョ ン と 動 作 を “デ フ ォ ル ト の ” コ マ ン ド 補 完 (補 完 が 定 義 さ れ て い な い コ マ ン ド に 対 し て 試 み ら れ る 補 完 ) に 適 用 す る こ と を 示 し ま す 。 −E オ プ シ ョ ン は 、 残 り の オ プ シ ョ ン と 動 作 を “空 の ” コ マ ン ド 補 完 (空 行 に 対 し て 試 み ら れ る 補 完 ) に 適 用 す る こ と を 示 し ま す 。 単 語 補 完 が 試 み ら れ た と き に 、 補 完 指 定 が 適 用 さ れ る 流 れ は 、 前 述 の プ ロ グ ラ ム 補 完 で 説 明 さ れ て い ま す 。 他 の オ プ シ ョ ン は 、 指 定 さ れ た 場 合 、 以 下 の よ う な 意 味 を 持 ち ま す 。 −G, −W, −X オ プ シ ョ ン の 引 き 数 (必 要 な ら ば −P−S オ プ シ ョ ン の 場 合 も ) は ク ォ ー ト し て 、 組 み 込 み コ マ ン ド complete が 呼 び 出 さ れ る 前 に 展 開 さ れ な い よ う に す べ き で す 。

−o comp−option

comp−option は 補 完 仕 様 の 動 作 を い く つ か の 観 点 か ら 制 御 し 、 単 純 な 補 完 生 成 以 外 が で き る よ う に し ま す 。 comp−option に は 以 下 の ど れ か ひ と つ を 指 定 で き ま す 。
bashdefault
補 完 仕 様 が マ ッ チ を 全 く 生 成 し な か っ た 場 合 に 、 bash の デ フ ォ ル ト の 補 完 を 用 い ま す 。

default 補 完 仕 様 が マ ッ チ を 全 く 生 成 し な か っ た 場 合 に 、

readline の デ フ ォ ル ト の 補 完 を 用 い ま す 。
dirnames
補 完 仕 様 が マ ッ チ を 全 く 生 成 し な か っ た 場 合 に 、 デ ィ レ ク ト リ 名 を 補 完 し よ う と し ま す 。
filenames
補 完 仕 様 が フ ァ イ ル 名 を 生 成 す る こ と を readline に 伝 え 、 readline が フ ァ イ ル 名 特 有 の 処 理 (デ ィ レ ク ト リ 名 に ス ラ ッ シ ュ を 加 え た り 、 特 殊 文 字 を ク ォ ー ト し た り 、 末 尾 の 空 白 を 削 除 し た り 、 な ど ) を 行 え る よ う に し ま す 。 シ ェ ル 関 数 と 共 に 用 い る こ と を 想 定 し て い ま す 。

nospace 行 末 で 単 語 を 補 完 し た と き に 空 白 を 付 け 加 え る 動 作

(デ フ ォ ル ト の 動 作 ) を や め る よ う に readline に 伝 え ま す 。
plusdirs
補 完 仕 様 で 定 義 さ れ た マ ッ チ し た 候 補 が 生 成 さ れ た 後 に 、 デ ィ レ ク ト リ 名 の 補 完 を 試 み 、 ほ か の 動 作 の 結 果 に マ ッ チ し た 候 補 が 全 て 追 加 さ れ ま す 。

−A action

action は 補 完 候 補 リ ス ト の 生 成 動 作 で 、 以 下 の ど れ か ひ と つ を 指 定 し ま す 。

alias エ イ リ ア ス 名 。

−a で も 指 定 で き ま す 。

arrayvar 配 列 変 数 名 。

binding

readline キ ー 割 り 当 て 名 。

builtin

シ ェ ル 組 み 込 み コ マ ン ド 名 。 −b で も 指 定 で き ま す 。
command
コ マ ン ド 名 。 −c で も 指 定 で き ま す 。

directory デ ィ レ ク ト リ 名 。 −d で も 指 定 で き ま す 。
disabled
無 効 に さ れ て い る シ ェ ル 組 み 込 み コ マ ン ド の 名 前 。

enabled 有 効 に さ れ て い る シ ェ ル 組 み 込 み コ マ ン ド の 名 前 。

export エ ク ス ポ ー ト さ れ た シ ェ ル 変 数 の 名 前 。

−e で も 指 定 で き ま す 。

file フ ァ イ ル 名 。

−f で も 指 定 で き ま す 。

function シ ェ ル 関 数 の 名 前 。

group グ ル ー プ 名 。

−g で も 指 定 で き ま す 。

helptopic 組 み 込 み コ マ ン ド help に 指 定 で き る ヘ ル プ の ト ピ ッ ク 名 。
hostname

HOSTFILE シ ェ ル 変 数 で 指 定 さ れ た フ ァ イ ル か ら 得 ら れ た ホ ス ト 名 。

job ジ ョ ブ 名

(ジ ョ ブ 制 御 が 有 効 な 場 合 )。 −j で も 指 定 で

き ま す 。

keyword シ ェ ル の 予 約 語 。

−k で も 指 定 で き ま す 。

running ジ ョ ブ 制 御 が 有 効

で あ れ ば 、 実 行 中 の ジ ョ ブ 名 。

service サ ー ビ ス 名 。

−s で も 指 定 で き ま す 。

setopt 組 み 込 み コ マ

ン ド set−o オ プ シ ョ ン で 有 効 な 引 き 数 。

shopt

組 み 込 み コ マ ン ド shopt に 指 定 で き る シ ェ ル オ プ シ ョ ン 名 。
signal

シ グ ナ ル 名 。

stopped 停 止 し て い る ジ ョ ブ 名

(ジ ョ ブ 制 御 が 有 効 な 場 合 )。

user ユ ー ザ 名 。

−u で も 指 定 で き ま す 。
variable
全 て の シ ェ ル 変 数 名 。 −v で も 指 定 で き ま す 。

−C command

command が サ ブ シ ェ ル 環 境 で 実 行 さ れ 、 そ の 出 力 が 補 完 候 補 と し て 使 用 さ れ ま す 。

−F function シ ェ ル 関 数 function は 現 在 の シ ェ ル 環 境 で 実 行 さ れ ま す 。 関 数 が 終 了 し た と き に 、 補 完 候 補 が COMPREPLY 配 列 変 数 か ら 取 得 さ れ ま す 。
−G
globpat パ ス 名 展 開 パ タ ー ン globpat を 展 開 し 、 補 完 候 補 の リ ス ト を 生 成 し ま す 。
−P
prefix ほ か の 全 て の オ プ シ ョ ン が 適 用 さ れ た 後 で 、 そ れ ぞ れ の 補 完 候 補 の 先 頭 に prefix が 付 け 加 え ら れ ま す 。
−S
suffix ほ か の 全 て の オ プ シ ョ ン が 適 用 さ れ た 後 で 、 そ れ ぞ れ の 補 完 候 補 の 後 に suffix が 付 け 加 え ら れ ま す 。
−W
wordlist

wordlistIFS 特 殊 変 数 に 含 ま れ る 文 字 を 区 切 り 文 字 と し て 分 割 さ れ 、 分 割 さ れ た 単 語 が そ れ ぞ れ 展 開 さ れ ま す 。 展 開 結 果 の リ ス ト の メ ン バ の う ち 、 補 完 中 の 単 語 が マ ッ チ す る も の が 、 補 完 候 補 と な り ま す 。

−X filterpat

filterpat が パ ス 名 展 開 の パ タ ー ン と し て 使 用 さ れ ま す 。 先 行 す る オ プ シ ョ ン ・ 引 き 数 に よ っ て 生 成 さ れ た 補 完 候 補 の リ ス ト に 適 用 さ れ 、 filterpat と マ ッ チ す る そ れ ぞ れ の 補 完 候 補 が リ ス ト か ら 削 除 さ れ ま す 。 filterpat! で 始 ま る 場 合 、 パ タ ー ン の 否 定 の 意 味 に な り ま す 。 つ ま り 、 filterpat に マ ッ チ し な い 補 完 対 象 が 削 除 さ れ ま す 。 不 正 な オ プ シ ョ ン が 指 定 さ れ た 場 合 、 −p−r 以 外 の オ プ シ ョ ン で name が 指 定 さ れ な か っ た 場 合 、 存 在 し な い name の 指 定 に よ っ て 補 完 が 削 除 さ れ よ う と し た 場 合 、 補 完 の 指 定 の 追 加 に 失 敗 し た 場 合 、 を 除 い て は 、 返 り 値 は 真 に な り ま す 。

compopt [−o option] [−DE] [+o option] [name]

name の 補 完 オ プ シ ョ ン を option に 従 っ て 変 更 し ま す 。 name が 指 定 さ れ な い 場 合 は 、 実 行 中 の 補 完 が 対 象 に な り ま す 。 options が 与 え ら れ な い 場 合 は 、 name ま た は 現 在 の 補 完 の 補 完 オ プ シ ョ ン を 表 示 し ま す 。 option に 指 定 で き る 値 は 、 前 述 の 組 み 込 み コ マ ン ド complete で 有 効 な も の で す 。 −D オ プ シ ョ ン は 、 残 り の オ プ シ ョ ン を “デ フ ォ ル ト の ” コ マ ン ド 補 完 (補 完 が 定 義 さ れ て い な い コ マ ン ド に 対 し て 試 み ら れ る 補 完 ) に 適 用 す る こ と を 示 し ま す 。 −E オ プ シ ョ ン は 、 残 り の オ プ シ ョ ン を “空 の ” コ マ ン ド 補 完 (空 行 に 対 し て 試 み ら れ る 補 完 ) に 適 用 す る こ と を 示 し ま す 。 不 正 な オ プ シ ョ ン が 指 定 さ れ た 場 合 、 補 完 仕 様 が 定 義 さ れ て い な い name の オ プ シ ョ ン を 変 更 し よ う と し た 場 合 、 出 力 エ ラ ー が 起 こ っ た 場 合 、 を 除 い て は 、 返 り 値 は 真 に な り ま す 。

continue [n]

for, while, until, select ル ー プ の 次 の 繰 り 返 し 分 か ら 実 行 を 継 続 し ま す 。 n を 指 定 す る と 、 深 さ を n 個 分 上 が っ た ル ー プ で 実 行 を 継 続 し ま す 。 n は 1 以 上 で な け れ ば な り ま せ ん 。 n が ル ー プ の 深 さ よ り も 大 き い 場 合 、 最 後 の ル ー プ (「 ト ッ プ レ ベ ル 」 の ル ー プ ) で 実 行 が 継 続 さ れ ま す 。 n が 1 未 満 の 場 合 を 除 け ば 、 返 り 値 は 0 で す 。

declare [−aAfFgilrtux] [−p] [name[=value] ...]
typeset
[−aAfFgilrtux] [−p] [name[=value] ...] 変 数 を 宣 言 し た り 、 変 数 に 属 性 を 与 え た り し ま す 。 name を 指 定 し な け れ ば 、 変 数 の 値 が 表 示 さ れ ま す 。 −p オ プ シ ョ ン を 指 定 す る と 、 各 name の 属 性 と 値 が 表 示 さ れ ま す 。 −pname 引 き 数 を 指 定 す る と 、 他 の オ プ シ ョ ン は 無 視 さ れ ま す 。 −p オ プ シ ョ ン が name 引 き 数 な し で 指 定 さ れ る と 、 他 の オ プ シ ョ ン で 指 定 さ れ た 属 性 を 持 っ て い る 全 て の 変 数 の 属 性 と 値 を 表 示 し ま す 。 −p 以 外 の オ プ シ ョ ン が 指 定 さ れ な い 場 合 、 declare は 全 て の シ ェ ル 変 数 の 属 性 と 値 を 表 示 し ま す 。 −f オ プ シ ョ ン は 表 示 を シ ェ ル 関 数 に 限 定 し ま す 。 −F オ プ シ ョ ン を 指 定 す る と 、 関 数 定 義 の 表 示 を 止 め ま す 。 関 数 の 名 前 と 属 性 だ け が 出 力 さ れ ま す 。 shopt に よ っ て シ ェ ル オ プ シ ョ ン extdebug が 有 効 に な っ て い れ ば 、 関 数 が 定 義 さ れ て い る ソ ー ス フ ァ イ ル の 名 前 と 行 番 号 も 表 示 さ れ ま す 。 −F オ プ シ ョ ン を 指 定 す る と 、 −f オ プ シ ョ ン も 指 定 し た こ と に な り ま す 。 −g オ プ シ ョ ン を 指 定 す る と 、 declare が シ ェ ル 関 数 の 中 で 実 行 さ れ た と き で あ っ て も 、 グ ロ ー バ ル ス コ ー プ で 変 数 の 作 成 、 変 更 を 行 い ま す 。 ほ か の 場 合 に は 無 視 さ れ ま す 。 以 下 の オ プ シ ョ ン を 使 う と 、 指 定 し た 属 性 を 持 つ 変 数 の 出 力 を 限 定 し た り 、 変 数 に 属 性 を 与 え た り で き ま す :

−a

name は 配 列 変 数 で す (前 述 の 配 列 を 参 照 )。

−A

name は 連 想 配 列 変 数 で す (前 述 の 配 列 を 参 照 )。

−f 関 数

名 だ け を 使 い ま す 。

−i 変 数 を 整 数 と し て 扱 い ま す 。 変 数 に 値 が 代 入 さ れ た と き に 算 術 式 評 価

( 算 術 式 評 価 を 参 照 ) が 実 行 さ れ ま す 。

−l 変 数 に 値 が 代 入 さ れ る と 、 全 て の 大 文 字 は 小 文 字 に 変 換 さ れ ま す 。 大 文 字 属 性 は 無 効 に な り ま す 。

−r

name を 読 み 込 み 専 用 に し ま す 。 こ れ 以 降 、 代 入 文 を 用 い て 値 を 代 入 し た り unset し た り で き な く な り ま す 。

−t

nametrace 属 性 を 与 え ま す 。 trace 属 性 を 付 与 さ れ た

関 数 は DEBUGRETURN の ト ラ ッ プ を 呼 び 出 し た シ ェ ル か ら 受 け 継 ぎ ま す trace 属 性 は 変 数 に は 意 味 を 持 ち ま せ ん 。

−u 変 数 に 値 が 代 入 さ れ る と 、 全 て の 小 文 字 は 大 文 字 に 変 換 さ れ ま す 。 小 文 字 属 性 は 無 効 に な り ま す 。

−x

name に 印 を 付 け 、 こ れ 以 降 に 実 行 す る コ マ ン ド に 環 境 経 由 で エ ク ス ポ ー ト し ま す 。

’−’ で は な く ’+’ を 使 う と 属 性 を 消 し ま す 。 た だ し 例 外 と し て 、 +a を 使 っ て 配 列 変 数 を 破 棄 す る こ と は で き ず 、 +r を 使 っ て 読 み 込 み 専 用 属 性 を 消 す こ と は で き ま せ ん 。 関 数 内 で 使 っ た 場 合 、 −g オ プ シ ョ ン が 与 え ら れ な か っ た 場 合 、 local コ マ ン ド を 使 っ た 場 合 と 同 様 に name は ロ ー カ ル 変 数 と な り ま す 。 変 数 名 に =value が 続 く 場 合 、 変 数 の 値 と し て value が 設 定 さ れ ま す 。 返 り 値 は 基 本 的 に は 0 で す が 、 不 正 な オ プ シ ョ ン に 出 会 っ た 場 合 、 ’’−f foo=bar’’, を 使 っ て 関 数 を 定 義 し よ う と し た 場 合 、 読 み 込 み 専 用 の 変 数 に 代 入 し よ う と し た 場 合 、 複 合 代 入 構 文 を 使 わ ず に 配 列 変 数 に 値 を 代 入 し よ う と し た 場 合 (前 述 の 配 列 を 参 照 )、 name の い ず れ か が 正 し い シ ェ ル 変 数 名 で な い 場 合 、 読 み 込 み 専 用 変 数 の 読 み 込 み 専 用 属 性 を 無 効 に し よ う と し た 場 合 、 配 列 変 数 の 配 列 属 性 を 無 効 に し よ う と し た 場 合 、 存 在 し な い 関 数 を −f オ プ シ ョ ン で 表 示 し よ う と し た 場 合 は 除 き ま す 。

dirs [+n] [−n] [−clpv] オ プ シ ョ ン が な い と き は 、 現 在 記 憶 し て い る デ ィ レ ク ト リ の リ ス ト が 表 示 さ れ ま す 。 デ フ ォ ル ト で は 、 全 て の デ ィ レ ク ト リ 名 は 空 白 で 区 切 っ て 1 行 で 表 示 さ れ ま す 。 デ ィ レ ク ト リ は pushd コ マ ン ド に よ っ て リ ス ト に 追 加 さ れ ま す 。 popd コ マ ン ド は リ ス ト か ら エ ン ト リ を 削 除 し ま す 。

+n オ プ シ ョ ン な し で

dirs を 起 動 し た と き に 表 示 さ れ る リ ス ト

の 、 左 か ら 数 え て n 番 目 の エ ン ト リ を 表 示 し ま す 。 エ ン ト リ は 0 か ら 始 ま り ま す 。

n オ プ シ ョ ン な し で

dirs を 起 動 し た と き に 表 示 さ れ る リ ス ト

の 、 右 か ら 数 え て n 番 目 の エ ン ト リ を 表 示 し ま す 。 エ ン ト リ は 0 か ら 始 ま り ま す 。

−c 全 て の エ ン ト リ を 削 除 し 、 デ ィ レ ク ト リ ス タ ッ ク を ク リ ア し ま す 。

−l 長 い 形 式 の リ ス ト 表 示 を 行 い ま す 。 デ フ ォ ル ト の リ ス ト 表 示 フ ォ ー マ ッ ト で は 、 チ ル ダ を 使 っ て ホ ー ム デ ィ レ ク ト リ を 表 し ま す 。

−p

1 行 に 1 エ ン ト リ の 形 で デ ィ レ ク ト リ ス タ ッ ク を 出 力 し ま す 。

−v

1 行 に 1 エ ン ト リ の 形 で デ ィ レ ク ト リ ス タ ッ ク を 出 力 し ま す 。 各 エ ン ト リ の 前 に は ス タ ッ ク 内 で の 番 号 が 表 示 さ れ ま す 。

不 正 な オ プ シ ョ ン が 与 え ら れ た 場 合 と イ ン デ ッ ク ス n が デ ィ レ ク ト リ ス タ ッ ク の 末 尾 を 越 え て い る 場 合 を 除 き 、 返 り 値 は 0 と な り ま す 。

disown [−ar] [−h] [jobspec ...] オ プ シ ョ ン な し の 場 合 に は 、 そ れ ぞ れ の jobspec が ア ク テ ィ ブ な ジ ョ ブ の テ ー ブ ル か ら 削 除 さ れ ま す 。 jobspec が な く 、 か つ −a オ プ シ ョ ン も −r オ プ シ ョ ン も 与 え ら れ て い な い 場 合 に は 、 カ レ ン ト ジ ョ ブ が 使 わ れ ま す 。 −h オ プ シ ョ ン が 与 え ら れ て い る 場 合 、 ど の jobspec も テ ー ブ ル か ら 削 除 さ れ ず 、 シ ェ ル が SIGHUP を 受 け 取 っ て も そ の ジ ョ ブ に は SIGHUP が 送 ら れ な い よ う に 印 が 付 け ら れ ま す 。 jobspec が 与 え ら れ て い な い 場 合 、 −a オ プ シ ョ ン は 全 て の ジ ョ ブ を 削 除 す る か 全 て の ジ ョ ブ に 印 を 付 け る と い う 意 味 と な り ま す 。 jobspec 引 き 数 な し で −r オ プ シ ョ ン を 指 定 す る と 、 実 行 中 の ジ ョ ブ だ け が 操 作 の 対 象 と な り ま す 。 jobspec が 有 効 な ジ ョ ブ を 指 定 し て い な い 場 合 を 除 き 、 返 り 値 は 0 と な り ま す 。
echo
[−neE] [arg ...]

arg を 空 白 で 区 切 っ て 出 力 し 、 最 後 に 改 行 を 出 力 し ま す 。 終 了 ス テ ー タ ス は 常 に 0 で す 。 −n が 指 定 さ れ た 場 合 、 最 後 の 改 行 は 出 力 さ れ ま せ ん 。 −e オ プ シ ョ ン を 指 定 し た 場 合 、 以 下 に 示 す 、 バ ッ ク ス ラ ッ シ ュ の エ ス ケ ー プ 文 字 が 解 釈 さ れ る よ う に な り ま す 。 −E オ プ シ ョ ン を 指 定 す る と 、 デ フ ォ ル ト で こ の よ う な エ ス ケ ー プ 文 字 が 解 釈 さ れ る シ ス テ ム で あ っ て も 、 エ ス ケ ー プ 文 字 が 解 釈 さ れ な い よ う に な り ま す 。 xpg_echo シ ェ ル オ プ シ ョ ン を 用 い る と 、 echo が こ れ ら の エ ス ケ ー プ 文 字 を 展 開 す る か ど う か の デ フ ォ ル ト 動 作 を 動 的 に 決 定 で き ま す 。 echo−− を オ プ シ ョ ン の 終 わ り と 解 釈 し ま せ ん 。 echo は 以 下 の エ ス ケ ー プ シ ー ケ ン ス を 解 釈 し ま す :

\a 警 告

(ベ ル )

\b バ ッ ク

ス ペ ー ス

\c 行 末 に 改 行 を 付 け な い

\e

\E エ ス ケ ー プ 文 字

\f フ ォ ー ム フ ィ ー ド

\n 改 行

\r 復 帰

(carriage return)

\t 水 平 タ ブ

\v 垂 直 タ ブ

\\ バ ッ ク ス ラ ッ シ ュ

\0nnn

8 進 値 で nnn で あ る 8 ビ ッ ト 文 字 (8 進 数 で 0〜 3 桁 )。

\xHH

16 進 値 が HH で あ る 8 ビ ッ ト 文 字 (16 進 で 1〜 2 桁 )。

\uHHHH

16 進 値 が HHHH で あ る ユ ニ コ ー ド (ISO/IEC 10646) 文 字 (16 進 1〜 4 桁 )。

\UHHHHHHHH

16 進 値 が HHHHHHHH で あ る ユ ニ コ ー ド (ISO/IEC 10646) 文 字 (16 進 1〜 8 桁 )。

enable [−a] [−dnps] [−f filename] [name ...] 組 み 込 み コ マ ン ド の 有 効 /無 効 を 設 定 し ま す 。 シ ェ ル は 通 常 は デ ィ ス ク コ マ ン ド の 前 に 組 み 込 み コ マ ン ド を 探 し ま す が 、 組 み 込 み コ マ ン ド を 無 効 に す る と 、 シ ェ ル の 組 み 込 み コ マ ン ド と 同 じ 名 前 を 持 つ デ ィ ス ク コ マ ン ド を 、 完 全 な パ ス 名 を 指 定 し な く て も 実 行 で き ま す 。 −n を 用 い る と 、 そ れ ぞ れ の name は 無 効 と な り ま す 。 そ れ 以 外 の 場 合 に は 、 name は 有 効 と な り ま す 。 例 え ば 、 シ ェ ル 組 み 込 み の も の で な く PATH 上 に あ る test バ イ ナ リ を 使 う に は ’’enable -n test’’. を 実 行 し ま す 。 −f オ プ シ ョ ン は 新 し い 組 み 込 み コ マ ン ド name を 共 有 オ ブ ジ ェ ク ト filename か ら ロ ー ド す る と い う 意 味 で す 。 こ れ は 動 的 ロ ー ド を サ ポ ー ト し て い る シ ス テ ム で 使 え ま す 。 −d オ プ シ ョ ン は 、 以 前 に −f オ プ シ ョ ン で ロ ー ド し た 組 み 込 み コ マ ン ド を 削 除 し ま す 。 引 き 数 name が 与 え ら れ な か っ た 場 合 や 、 −p オ プ シ ョ ン が 与 え ら れ た 場 合 、 シ ェ ル の 組 み 込 み コ マ ン ド の リ ス ト が 表 示 さ れ ま す 。 他 に オ プ シ ョ ン 引 き 数 が 指 定 さ れ て い な い 場 合 に は 、 有 効 に な っ て い る シ ェ ル 組 み 込 み コ マ ン ド 全 て か ら な る リ ス ト が 表 示 さ れ ま す 。 −n を 与 え る と 、 無 効 に さ れ て い る 組 み 込 み コ マ ン ド だ け が 出 力 さ れ ま す 。 −a を 与 え る と 、 そ れ ぞ れ 有 効 か ど う か の 表 示 付 き で 全 て の 組 み 込 み コ マ ン ド が 出 力 さ れ ま す 。 −s を 与 え る と 、 出 力 さ れ る の は POSIX の 特 殊 組 み 込 み コ マ ン ド だ け に 制 限 さ れ ま す 。 name が シ ェ ル 組 み 込 み コ マ ン ド で な い 場 合 と 、 共 有 オ ブ ジ ェ ク ト か ら の 新 し い 組 み 込 み コ マ ン ド の ロ ー ド に 失 敗 し た 場 合 を 除 き 、 返 り 値 は 0 と な り ま す 。
eval
[arg ...]

arg を 読 み 込 み 、 1 つ の コ マ ン ド に 結 合 し 、 こ の コ マ ン ド を 読 み 込 ん で 実 行 し ま す 。 そ の 終 了 ス テ ー タ ス が eval の 値 と し て 返 さ れ ま す 。 args が な い 場 合 や 空 の 引 き 数 し か な い 場 合 に は eval は 0 を 返 し ま す 。

exec [−cl] [−a name] [command [arguments]]

command が 指 定 さ れ て い る と 、 シ ェ ル は こ の コ マ ン ド に 置 き 換 え ら れ ま す 。 新 し い プ ロ セ ス は 生 成 さ れ ま せ ん 。 argumentscommand に 対 す る 引 き 数 と な り ま す 。 −l オ プ シ ョ ン を 与 え る と 、 シ ェ ル は command に 渡 す 0 番 目 の オ プ シ ョ ン の 先 頭 に ダ ッ シ ュ を 設 定 し ま す 。 こ れ は login(1) が 行 う 動 作 で す 。 −c オ プ シ ョ ン を 与 え る と 、 command は 空 の 環 境 で 実 行 さ れ ま す 。 −a を 与 え る と 、 シ ェ ル は 実 行 す る コ マ ン ド に 0 番 目 の 引 き 数 と し て name を 渡 し ま す 。 何 ら か の 理 由 で command が 実 行 で き な い 場 合 に は 非 対 話 的 シ ェ ル は 終 了 し ま す 。 た だ し シ ェ ル オ プ シ ョ ン execfail が 設 定 さ れ て い る 場 合 は 終 了 せ ず 、 こ の 場 合 に は 偽 が 返 さ れ ま す 。 フ ァ イ ル が 実 行 で き な い 場 合 に は 、 対 話 的 シ ェ ル は 偽 を 返 し ま す 。 command が 指 定 さ れ て い な い 場 合 、 任 意 の リ ダ イ レ ク ト は カ レ ン ト シ ェ ル で 効 果 を 持 ち 、 終 了 ス テ ー タ ス は 0 と な り ま す 。 リ ダ イ レ ク ト の エ ラ ー が 起 き た 場 合 に は 、 終 了 ス テ ー タ ス は 1 と な り ま す 。

exit [n] ス テ ー タ ス n で シ ェ ル を 終 了 さ せ ま す 。 n を 省 略 す る と 、 終 了 ス テ ー タ ス は 最 後 に 実 行 し た コ マ ン ド の 終 了 ス テ ー タ ス と な り ま す 。 シ ェ ル が 終 了 す る 前 に は 、 EXIT に 対 す る ト ラ ッ プ が 実 行 さ れ ま す 。
export
[−fn] [name[=word]] ...
export −p
指 定 さ れ た name に は 印 が 付 け ら れ 、 こ れ 以 降 に 実 行 す る コ マ ン ド の 環 境 に 自 動 的 に エ ク ス ポ ー ト さ れ る よ う に な り ま す 。 −f オ プ シ ョ ン を 与 え る と 、 name は 関 数 を 参 照 し ま す 。 name を 与 え な か っ た 場 合 や 、 −p オ プ シ ョ ン を 与 え た 場 合 に は 、 こ の シ ェ ル 内 で エ ク ス ポ ー ト さ れ て い る 全 て の 名 前 の リ ス ト が 出 力 さ れ ま す 。 −n オ プ シ ョ ン を 与 え る と 、 指 定 し た 変 数 か ら エ ク ス ポ ー ト 属 性 が 取 り 除 か れ ま す 。 変 数 名 に =word が 続 く と 、 変 数 の 値 に word が 設 定 さ れ ま す 。 不 正 な オ プ シ ョ ン が あ っ た 場 合 、 name の い ず れ か が 不 正 な シ ェ ル 変 数 名 で あ っ た 場 合 、 関 数 で な い 名 前 に 対 し て −f オ プ シ ョ ン を 与 え た 場 合 を 除 き 、 export は 終 了 ス テ ー タ ス 0 を 返 し ま す 。
fc
[−e ename] [−lnr] [first] [last]
fc −s
[pat=rep] [cmd] フ ィ ッ ク ス コ マ ン ド (Fix Command)。 最 初 の 形 式 で は 、 first か ら last ま で の 範 囲 の コ マ ン ド が 履 歴 リ ス ト か ら 選 択 さ れ ま す 。 firstlast に は 文 字 列 か 数 値 を 指 定 し ま す 。 文 字 列 は そ の 文 字 列 で 始 ま る 最 後 の コ マ ン ド を 表 し 、 数 値 は 履 歴 リ ス ト 中 で の イ ン デ ッ ク ス を 表 し ま す (負 の 値 は 現 在 の コ マ ン ド 番 号 か ら の オ フ セ ッ ト と し て 扱 わ れ ま す )。 last が 指 定 さ れ て い な い 場 合 、 リ ス ト 表 示 の 場 合 に は 現 在 の コ マ ン ド が last に 設 定 さ れ (し た が っ て ’’fc −l −10’’ で 最 近 の コ マ ン ド 10 個 が 出 力 さ れ ま す )、 そ れ 以 外 の 場 合 に は first が 設 定 さ れ ま す 。 first が 指 定 さ れ て い な け れ ば 、 編 集 の 場 合 に は 前 の コ マ ン ド が first に 設 定 さ れ 、 リ ス ト 表 示 の 場 合 に は −16 が 設 定 さ れ ま す 。

−n オ プ シ ョ ン を 与 え る と リ ス ト 表 示 で コ マ ン ド 番 号 が 付 き ま せ ん 。 −r オ プ シ ョ ン を 与 え る と コ マ ン ド の 順 序 が 逆 に な り ま す 。 −l オ プ シ ョ ン を 与 え る と 、 コ マ ン ド は 標 準 出 力 に リ ス ト 表 示 さ れ ま す 。 そ れ 以 外 の 場 合 に は 、 こ れ ら の コ マ ン ド が 書 か れ た フ ァ イ ル に 対 し 、 ename で 指 定 し た エ デ ィ タ が 起 動 さ れ ま す 。 ename が 与 え ら れ て い な い 場 合 は 、 変 数 FCEDIT の 値 が 使 わ れ 、 FCEDIT も 設 定 さ れ て い な い 場 合 に は EDITOR の 値 が 使 わ れ ま す 。 ど ち ら の 変 数 も 設 定 さ れ て い な け れ ば 、 vi が 使 わ れ ま す 。 編 集 が 終 了 す る と 、 編 集 後 の コ マ ン ド が エ コ ー 表 示 さ れ 、 実 行 さ れ ま す 。

2 番 目 の 形 式 で は 、 pat の 部 分 を そ れ ぞ れ rep で 置 き 換 え て か ら command が 再 実 行 さ れ ま す 。 こ れ を 利 用 し て い る 便 利 な エ イ リ ア ス の 例 と し て ’’r="fc -s"’’, が あ り ま す 。 こ れ を 用 い る と ’’r cc’’ と 入 力 す れ ば ’’cc’’ で 始 ま る 最 も 新 し い コ マ ン ド を 実 行 で き 、 ’’r’’ と 入 力 す れ ば 直 前 の コ マ ン ド を 再 実 行 で き ま す 。 最 初 の 形 式 を 用 い た 場 合 、 不 正 な オ プ シ ョ ン が あ る か 、 first ま た は last が 履 歴 行 の 範 囲 外 を 指 定 し て い な け れ ば 、 返 り 値 は 0 と な り ま す 。 −e オ プ シ ョ ン が 与 え ら れ た 場 合 、 返 り 値 は 最 後 に 実 行 さ れ た コ マ ン ド の 返 り 値 と な り ま す 。 た だ し 、 コ マ ン ド の 一 時 フ ァ イ ル で エ ラ ー が 起 き た 場 合 に は 返 り 値 は 偽 (失 敗 ) と な り ま す 。 2 番 目 の 形 式 を 用 い た 場 合 、 終 了 ス テ ー タ ス は 再 実 行 さ れ た コ マ ン ド の 終 了 ス テ ー タ ス と な り ま す 。 た だ し 、 cmd が 有 効 な 履 歴 行 を 指 定 し て い な い 場 合 は 、 fc は 偽 (失 敗 ) を 返 し ま す 。

fg [jobspec]

jobspec の 実 行 を フ ォ ア グ ラ ウ ン ド で 再 開 し 、 こ れ を カ レ ン ト ジ ョ ブ と し ま す 。 jobspec が な い 場 合 、 シ ェ ル が 記 録 し て い る カ レ ン ト ジ ョ ブ が 使 わ れ ま す 。 返 り 値 は フ ォ ア グ ラ ウ ン ド で 再 開 さ れ た コ マ ン ド の 返 り 値 で す が 、 ジ ョ ブ 制 御 が 無 効 で あ る と き に 実 行 し た 場 合 や 、 ジ ョ ブ 制 御 が 有 効 で あ っ て も jobspec が 有 効 な ジ ョ ブ を 指 定 し て い な い 場 合 や jobspec が ジ ョ ブ 制 御 な し で 実 行 し た ジ ョ ブ を 指 定 し て い る 場 合 に は 偽 と な り ま す 。

getopts optstring name [args]

getopts は 位 置 パ ラ メ ー タ を 解 釈 す る シ ェ ル の 処 理 で 使 い ま す 。 optstring は 識 別 の 対 象 で あ る オ プ シ ョ ン 文 字 列 で す 。 あ る 文 字 の 後 に コ ロ ン が あ る 場 合 、 そ の オ プ シ ョ ン は 引 き 数 を 一 つ 取 る こ と が 期 待 さ れ ま す 。 引 き 数 は 空 白 で オ プ シ ョ ン 文 字 と 区 切 ら れ て い な け れ ば な り ま せ ん 。 コ ロ ン と 疑 問 符 は オ プ シ ョ ン 文 字 と し て 使 え ま せ ん 。 呼 び 出 さ れ る た び に 、 getopts は 次 に 見 つ か っ た オ プ シ ョ ン を シ ェ ル 変 数 name に 格 納 し (name が 存 在 し な け れ ば 初 期 化 を 行 い ま す )、 次 に 処 理 さ れ る 引 き 数 の イ ン デ ッ ク ス を 変 数 OPTIND に 格 納 し ま す 。 OPTIND は シ ェ ル ま た は シ ェ ル ス ク リ プ ト が 呼 び 出 さ れ る た び に 1 に 初 期 化 さ れ ま す 。 オ プ シ ョ ン が 引 き 数 を 必 要 と す る 場 合 に は 、 getopts は そ の 引 き 数 を 変 数 OPTARG に 格 納 し ま す 。 シ ェ ル が OPTIND を 自 動 的 に 再 設 定 す る こ と は あ り ま せ ん 。 1 つ の シ ェ ル が 呼 び 出 さ れ て い る 間 に 別 の パ ラ メ ー タ の 組 み 合 わ せ を 使 う 場 合 に は 、 再 度 getopts を 呼 び 出 す 前 に 手 動 で OPTIND の 再 設 定 を 行 わ な け れ ば な り ま せ ん 。 オ プ シ ョ ン の 終 わ り に 到 達 す る と 、 getopts は 0 よ り 大 き い 返 り 値 で 終 了 し ま す 。 OPTIND に は オ プ シ ョ ン で な い 最 初 の 引 き 数 の イ ン デ ッ ク ス が 設 定 さ れ 、 name に は ? が 設 定 さ れ ま す 。

getopts は 通 常 位 置 パ ラ メ ー タ を 展 開 し ま す が 、 他 の 引 き 数 が args に 指 定 さ れ て い る 場 合 に は 、 getopts は 位 置 パ ラ メ ー タ で な く こ れ ら の 引 き 数 を 解 釈 対 象 と し ま す 。

getopts は 2 通 り の 方 法 で エ ラ ー を 報 告 し ま す 。 optstring の 最 初 の 文 字 が コ ロ ン な ら ば 、 静 か な (silent) エ ラ ー 報 告 が 行 わ れ ま す 。 通 常 の 動 作 で は 、 不 正 な オ プ シ ョ ン が あ る 場 合 や オ プ シ ョ ン の 引 き 数 が 足 り な い 場 合 に 診 断 メ ッ セ ー ジ が 出 力 さ れ ま す 。 変 数 OPTERR に 0 が 設 定 さ れ て い る 場 合 、 optstring の 最 初 の 文 字 が コ ロ ン で な い 場 合 で あ っ て も 、 エ ラ ー メ ッ セ ー ジ は 全 く 出 力 さ れ ま せ ん 。 不 正 な オ プ シ ョ ン が あ っ た 場 合 、 getopts は ? を name に 設 定 し ま す 。 さ ら に 、 静 か な モ ー ド で な い 場 合 に は エ ラ ー メ ッ セ ー ジ が 出 力 さ れ 、 OPTARG が 削 除 さ れ ま す 。 getopts が 静 か な モ ー ド で あ れ ば 、 見 つ か っ た オ プ シ ョ ン 文 字 は OPTARG に 設 定 さ れ 、 診 断 メ ッ セ ー ジ は 出 力 さ れ ま せ ん 。 必 要 な 引 き 数 が 見 つ か ら ず 、 か つ getopts が 静 か な モ ー ド で な い 場 合 に は 、 疑 問 符 (?) が name に 設 定 さ れ 、 OPTARG が 削 除 さ れ 、 診 断 メ ッ セ ー ジ が 出 力 さ れ ま す 。 getopts が 静 か な モ ー ド な ら ば 、 コ ロ ン (:)name に 設 定 さ れ 、 OPTARG に は 見 つ か っ た オ プ シ ョ ン 文 字 が 設 定 さ れ ま す 。

(指 定 の 有 無 に 関 係 な く ) オ プ シ ョ ン が 見 つ か っ た 場 合 、 getopts は 真 を 返 し ま す 。 オ プ シ ョ ン の 最 後 に 到 達 し た 場 合 や 、 エ ラ ー が 起 き た 場 合 に は 、 偽 を 返 し ま す 。

hash [−lr] [−p filename] [−dt] [name]

hash が 実 行 さ れ る 度 に 、 $PATH に 含 ま れ る デ ィ レ ク ト リ の 検 索 を 行 っ て コ マ ン ド name の 完 全 な パ ス 名 を 調 べ 、 そ の 結 果 を 記 憶 し ま す 。 そ れ ま で に 記 憶 さ れ て い た パ ス 名 は 捨 て ら れ ま す 。 −p オ プ シ ョ ン が 指 定 さ れ る と 、 パ ス 検 索 は 実 行 さ れ ず 、 filename が そ の コ マ ン ド の 完 全 な フ ァ イ ル 名 と し て 使 わ れ ま す 。 −r オ プ シ ョ ン を 与 え る と 、 シ ェ ル は 記 憶 し て い る パ ス 名 を 全 て 忘 れ ま す 。 −d オ プ シ ョ ン を 与 え る と 、 シ ェ ル は 各 name に つ い て 記 憶 し て い る パ ス 名 を 忘 れ ま す 。 −t オ プ シ ョ ン を 与 え る と 、 name に 対 応 す る 完 全 な フ ァ イ ル 名 が 表 示 さ れ ま す 。 −t に 複 数 の name 引 き 数 が 指 定 さ れ た 場 合 、 記 憶 さ れ て い る 完 全 な フ ァ イ ル 名 の 前 に name が 表 示 さ れ ま す 。 −l オ プ シ ョ ン を 与 え る と 、 入 力 と し て 再 利 用 で き る 形 で 出 力 さ れ ま す 。 引 き 数 が 与 え ら れ て い な い 場 合 や 、 −l だ け が 与 え ら れ た 場 合 は 、 記 憶 し て い る コ マ ン ド に 関 す る 情 報 が 出 力 さ れ ま す 。 name が 見 つ か ら な い 場 合 と 不 正 な オ プ シ ョ ン が 与 え ら れ た 場 合 を 除 き 、 返 却 ス テ ー タ ス は 真 と な り ま す 。

help [−dms] [pattern] 組 み 込 み コ マ ン ド の ヘ ル プ 情 報 を 表 示 し ま す 。 pattern が 指 定 さ れ た 場 合 に は 、 helppattern に マ ッ チ す る 全 て の コ マ ン ド に 関 す る 詳 し い ヘ ル プ を 出 力 し ま す 。 指 定 さ れ な か っ た 場 合 に は 、 全 て の 組 み 込 み コ マ ン ド と 制 御 構 造 に つ い て の 説 明 が 出 力 さ れ ま す 。

−d

pattern そ れ ぞ れ の 短 い 説 明 を 表 示 し ま す 。

−m

pattern そ れ ぞ れ の 説 明 を manpage 風 の フ ォ ー マ ッ ト で 表 示 し ま す 。

−s

pattern そ れ ぞ れ の 短 い 書 式 の み を 表 示 し ま す 。

pattern に マ ッ チ す る コ マ ン ド が 全 く な い 場 合 を 除 き 、 返 却 ス テ ー タ ス は 0 で す 。

history [n]
history −c
history −d
offset
history −anrw
[filename]
history −p
arg [arg ...]
history −s
arg [arg ...] オ プ シ ョ ン が な い 場 合 に は 、 行 番 号 付 き で コ マ ン ド 履 歴 を 表 示 し ま す 。 * 付 き で リ ス ト 表 示 さ れ て い る 行 は 変 更 さ れ た 行 で す 。 引 き 数 n を 指 定 す る と 、 最 新 の n 行 だ け が リ ス ト 表 示 さ れ ま す 。 シ ェ ル 変 数 HISTTIMEFORMAT に 空 で な い 値 が 設 定 さ れ る と 、 履 歴 エ ン ト リ を 表 示 す る と き に タ イ ム ス タ ン プ を 表 示 す る た め の strftime(3) の 書 式 文 字 列 と し て 使 わ れ ま す 。 タ イ ム ス タ ン プ と 履 歴 行 の 間 に は 空 白 は 表 示 さ れ ま せ ん 。 filename が 指 定 さ れ て い る 場 合 、 履 歴 フ ァ イ ル の 名 前 と し て 使 わ れ ま す 。 指 定 さ れ て い な い 場 合 に は HISTFILE の 値 が 使 わ れ ま す 。 指 定 さ れ た 場 合 、 オ プ シ ョ ン は 以 下 の 意 味 を 持 ち ま す :

−c 全 て の エ ン ト リ を 削 除 し 、 履 歴 リ ス ト を ク リ ア し ま す 。

−d offset

offset 番 目 に あ る 履 歴 エ ン ト リ を 削 除 し ま す 。

−a 「 新 し い 」 履 歴 行

(bash の 現 在 の セ ッ シ ョ ン の 開 始 以 降 に 入 力

さ れ た 履 歴 行 ) を 履 歴 フ ァ イ ル に 追 加 し ま す 。

−n ま だ 履 歴 フ ァ イ ル か ら 読 み 込 ん で い な い 履 歴 行 を 現 在 の 履 歴 リ ス ト に 読 み 込 み ま す 。 読 み 込 ま れ る の は 、

bash の 現 在 の セ ッ シ ョ ン の 開 始 以 降 に 履 歴 フ ァ イ ル に 追 加 さ れ た 行 で す 。

−r 履 歴 フ ァ イ ル の 内 容 を 読 み 込 み 、 こ れ ら を 現 在 の 履 歴 と し て 用 い ま す 。

−w 現 在 の 履 歴 を 履 歴 フ ァ イ ル に 書 き 込 み ま す 。 履 歴 フ ァ イ ル の 内 容 は 上 書 き さ れ ま す 。

−p 後 に 続 く

args に 対 し て 履 歴 置 換 を 行 い 、 そ の 結 果 を 標 準 出 力 に 表 示 し ま す 。 こ の 結 果 は 履 歴 リ ス ト に は 格 納 さ れ ま せ ん 。 通 常 の 履 歴 展 開 が 行 わ れ な い よ う に す る た め 、 arg は そ れ ぞ れ ク ォ ー ト し な け れ ば な り ま せ ん 。

−s

args を 1 つ の エ ン ト リ と し て 履 歴 リ ス ト に 格 納 し ま す 。 履 歴 リ ス ト の 最 後 の コ マ ン ド は 、 args が 追 加 さ れ る 前 に 削 除 さ れ ま す 。

HISTTIMEFORMAT 変 数 が 設 定 さ れ て い る と 、 履 歴 エ ン ト リ の タ イ ム ス タ ン プ の 情 報 は 、 履 歴 の コ メ ン ト 文 字 を 付 け て 履 歴 フ ァ イ ル に 書 き 込 ま れ ま す 。 履 歴 フ ァ イ ル を 読 み 込 む と き に 、 履 歴 の コ メ ン ト 文 字 で 始 ま り 直 後 に 数 字 が 続 く 行 は 、 直 前 の 履 歴 行 の タ イ ム ス タ ン プ と し て 解 釈 さ れ ま す 。 不 正 な オ プ シ ョ ン が あ る 場 合 、 履 歴 フ ァ イ ル の 読 み 書 き 時 に エ ラ ー が 起 き た 場 合 、 −d オ プ シ ョ ン の 引 き 数 と し て 不 正 な offset の 値 が 与 え ら れ た 場 合 、 −p オ プ シ ョ ン の 引 き 数 と し て 与 え ら れ た 履 歴 展 開 が 失 敗 し た 場 合 を 除 き 、 返 り 値 は 0 に な り ま す 。

jobs [−lnprs] [ jobspec ... ]
jobs −x
command [ args ... ] 最 初 の 形 式 を 実 行 す る と 、 ア ク テ ィ ブ な ジ ョ ブ が リ ス ト 表 示 さ れ ま す 。 オ プ シ ョ ン は 以 下 の 意 味 を 持 ち ま す :

−l 通 常 の 情 報 に 加 え て 、 プ ロ セ ス

ID を リ ス ト 表 示 し ま す 。

−n ユ ー ザ が ス テ ー タ ス を 最 後 に 通 知

さ れ て 以 降 に 、 ス テ ー タ ス の 変 更 が あ っ た ジ ョ ブ に 関 す る 情 報 だ け を 表 示 し ま す 。

−p そ の ジ ョ ブ が 属 す る プ ロ セ ス グ ル ー プ の リ ー ダ ー の プ ロ セ ス

ID

だ け を 表 示 し ま す 。

−r 実 行 中 の ジ ョ ブ だ け を 出 力 し ま す 。

−s 停 止 中 の ジ ョ ブ だ け を 出 力 し ま す 。

jobspec が 指 定 さ れ た 場 合 、 そ の ジ ョ ブ に 関 す る 情 報 だ け が 出 力 さ れ ま す 。 不 正 な オ プ シ ョ ン が あ る 場 合 や 、 不 正 な jobspec が 与 え ら れ た 場 合 を 除 き 、 返 却 ス テ ー タ ス は 0 で す 。

−x オ プ シ ョ ン が 指 定 さ れ る と 、 jobscommandargs 中 の jobspec を 対 応 す る プ ロ セ ス の グ ル ー プ ID で 置 き 換 え 、 commandargs を 与 え て 実 行 し 、 そ の 終 了 ス テ ー タ ス を 返 し ま す 。

kill [−s sigspec | −n signum | sigspec] [pid | jobspec] ...
kill −l
[sigspec | exit_status]

sigspec ま た は signum で 指 定 さ れ た シ グ ナ ル を 、 pid ま た は jobspec で 指 定 さ れ た プ ロ セ ス に 送 り ま す 。 sigspec は 、 SIGKILL の よ う な シ グ ナ ル 名 (先 頭 の SIG は 省 略 可 能 )、 ま た は シ グ ナ ル の 番 号 で す 。 signum は シ グ ナ ル の 番 号 で す 。 sigspec が 存 在 し な い 場 合 に は 、 SIGTERM が 指 定 さ れ た も の と し ま す 。 引 き 数 に −l を 与 え る と シ グ ナ ル 名 が リ ス ト 表 示 さ れ ま す 。 −l と 同 時 に 引 き 数 を 与 え る と 、 引 き 数 に 対 応 す る シ グ ナ ル の 名 前 が リ ス ト 表 示 さ れ 、 返 却 ス テ ー タ ス は 0 と な り ま す 。 −l に 対 す る 引 き 数 exit_status は 、 シ グ ナ ル 番 号 、 ま た は シ グ ナ ル に よ っ て 終 了 さ せ ら れ た プ ロ セ ス の 終 了 ス テ ー タ ス を 指 定 す る 数 で す 。 少 な く と も 1 つ の シ グ ナ ル を 正 常 に 送 れ た 場 合 、 kill は 真 を 返 し ま す 。 エ ラ ー が 起 き た 場 合 や 不 正 な オ プ シ ョ ン が あ っ た 場 合 に は 、 kill は 偽 を 返 し ま す 。

let arg [arg ...] 各 arg は 評 価 を 行 う 算 術 式 で す (算 術 式 展 開 を 参 照 )。 最 後 の arg を 評 価 し た 結 果 が 0 で あ れ ば 、 let は 1 を 返 し ま す 。 そ れ 以 外 の 場 合 に は 0 が 返 さ れ ま す 。
local
[option] [name[=value] ...] そ れ ぞ れ の 引 き 数 に 対 し て name と い う 名 前 の ロ ー カ ル 変 数 が 生 成 さ れ 、 value が 代 入 さ れ ま す 。 option に は 、 declare コ マ ン ド に 使 え る オ プ シ ョ ン が 全 て 使 え ま す 。 関 数 内 で local を 使 っ た 場 合 、 こ の 変 数 name の 可 視 ス コ ー プ は 、 こ の 関 数 と こ の 関 数 の 子 に 制 限 さ れ ま す 。 オ ペ ラ ン ド が な い 場 合 、 local は ロ ー カ ル 変 数 の 一 覧 を 標 準 出 力 に 出 力 し ま す 。 関 数 の 内 部 以 外 で local を 使 う と エ ラ ー に な り ま す 。 local が 関 数 の 外 部 で 使 わ れ た 場 合 、 不 正 な name が 与 え ら れ た 場 合 、 name が 読 み 取 り 専 用 の 変 数 で あ っ た 場 合 以 外 は 、 local の 返 却 ス テ ー タ ス は 0 と な り ま す 。

logout ロ グ イ ン シ ェ ル を 終 了 し ま す 。

mapfile [−n count] [−O origin] [−s count] [−t] [−u fd] [−C callback]
[−c quantum] [array]
readarray
[−n count] [−O origin] [−s count] [−t] [−u fd] [−C callback]
[−c quantum] [array] 標 準 入 力 の 各 行 を 配 列 変 数 array に 読 み 込 み ま す 。 −u オ プ シ ョ ン が 指 定 さ れ た と き は 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー fd か ら 読 み 込 み ま す 。 変 数 MAPFILE が デ フ ォ ル ト の array で す 。 オ プ シ ョ ン が 指 定 さ れ た 場 合 、 以 下 の 意 味 を 持 ち ま す :

−n 最 大

count 行 を コ ピ ー し ま す 。 count が 0 で あ れ ば 、 全 て の

行 を コ ピ ー し ま す 。

−O

array の イ ン デ ッ ク ス origin か ら 代 入 を 始 め ま す 。 デ フ ォ ル ト の イ ン デ ッ ク ス は 0 で す 。

−s

最 初 の count 行 を 読 み 捨 て ま す 。
−t
読 み 込 ん

だ 各 行 の 末 尾 に あ る 改 行 文 字 を 削 除 し ま す 。

−u 標 準 入 力 の 代 わ り に フ ァ イ ル ・ デ ィ ス ク リ プ タ ー

fd か ら 行 を

読 み 込 み ま す 。

−C

quantum 行 が 読 み 込 ま れ る ご と に callback を 評 価 し ま す 。 −c オ プ シ ョ ン で quantum を 指 定 し ま す 。

−c

callback を 呼 び 出 す 間 隔 の 行 数 を 指 定 し ま す 。

−c な し で −C が 指 定 さ れ た と き 、 デ フ ォ ル ト の 間 隔 は 5000 で す 。 callback が 評 価 さ れ る と き 、 次 に 代 入 さ れ る 配 列 要 素 の イ ン デ ッ ク ス と 、 そ の 要 素 に 代 入 さ れ る 行 が 、 引 き 数 と し て 与 え ら れ ま す 。 callback は 、 行 が 読 み 込 ま れ て か ら 配 列 の 要 素 に 代 入 さ れ る ま で の 間 に 評 価 さ れ ま す 。 始 点 が 明 示 的 に 指 定 さ れ な い 場 合 、 mapfile は 値 を 代 入 す る 前 に array を ク リ ア し ま す 。

mapfile は 、 不 正 な オ プ シ ョ ン や オ プ シ ョ ン 引 き 数 が 指 定 さ れ た 場 合 や 、 array が 不 正 か 代 入 で き な い 場 合 や 、 array が イ ン デ ッ ク ス に よ る 配 列 で な い 場 合 で な け れ ば 、 成 功 の 状 態 を 返 し ま す 。

popd [−n] [+n] [−n] デ ィ レ ク ト リ ス タ ッ ク か ら エ ン ト リ を 削 除 し ま す 。 引 き 数 が な い 場 合 に は 、 ス タ ッ ク 先 頭 の デ ィ レ ク ト リ が 削 除 さ れ 、 新 し く 先 頭 と な っ た デ ィ レ ク ト リ へ の cd が 実 行 さ れ ま す 。 引 き 数 が 指 定 さ れ た 場 合 に は 、 こ れ は 以 下 の 意 味 を 持 ち ま す :

−n ス タ ッ ク か ら デ ィ レ ク ト リ を 削 除 す る 際 に 、 通 常 の デ ィ レ ク ト リ 変 更 を 行 い ま せ ん 。 し た が っ て 、 ス タ ッ ク だ け が 操 作 さ れ ま す 。

+n

dirs で 表 示 さ れ る リ ス ト の 左 か ら 数 え て n 番 目 の エ ン ト リ を 削 除 し ま す 。 エ ン ト リ は 0 か ら 数 え ま す 。 例 え ば 、 ’’popd +0’’ は 最 初 の デ ィ レ ク ト リ を 削 除 し 、 ’’popd +1’’ は 2 番 目 の デ ィ レ ク ト リ を 削 除 し ま す 。

n

dirs で 表 示 さ れ る リ ス ト の 右 か ら 数 え て n 番 目 の エ ン ト リ を 削 除 し ま す 。 エ ン ト リ は 0 か ら 数 え ま す 。 例 え ば 、 ’’popd -0’’ は 最 後 の デ ィ レ ク ト リ を 削 除 し 、 ’’popd -1’’ は 最 後 の 1 つ 前 の デ ィ レ ク ト リ を 削 除 し ま す 。

popd コ マ ン ド が 成 功 し た 場 合 、 dirs も 実 行 さ れ 、 返 却 ス テ ー タ ス は 0 と な り ま す 。 popd が 偽 を 返 す の は 、 不 正 な オ プ シ ョ ン が あ っ た 場 合 、 デ ィ レ ク ト リ ス タ ッ ク が 空 の 場 合 、 デ ィ レ ク ト リ ス タ ッ ク の 存 在 し な い エ ン ト リ が 指 定 さ れ た 場 合 、 デ ィ レ ク ト リ 変 更 に 失 敗 し た 場 合 で す 。

printf [−v var] format [arguments]

arguments を 整 形 し て 標 準 出 力 に 書 き 出 し ま す 。 フ ォ ー マ ッ ト は format で 制 御 し ま す 。 −v オ プ シ ョ ン が 与 え ら れ る と 、 標 準 出 力 に 書 き 出 す 代 わ り に 、 変 数 var に 代 入 さ れ ま す 。

format は 3 つ の タ イ プ の オ ブ ジ ェ ク ト を 含 む 文 字 列 で す 。 3 つ の オ ブ ジ ェ ク ト と は 、 普 通 の 文 字 (そ の ま ま 標 準 出 力 に コ ピ ー さ れ る )、 文 字 エ ス ケ ー プ シ ー ケ ン ス (変 換 さ れ て 標 準 出 力 に コ ピ ー さ れ る )、 表 示 フ ォ ー マ ッ ト 指 定 (format の 後 に 続 く 各 引 き 数 argument の 表 示 を 行 う )、 で す 。 printf(1) 標 準 の フ ォ ー マ ッ ト 指 定 以 外 に 、 以 下 の 拡 張 フ ォ ー マ ッ ト が 使 え ま す 。

%b

printf は 対 応 す る argument 中 の バ ッ ク ス ラ ッ シ ュ の エ ス ケ ー プ シ ー ケ ン ス を 展 開 し ま す 。 た だ し 、 \c で 出 力 を 終 了 し 、 \', \", \? の バ ッ ク ス ラ ッ シ ュ は 削 ら れ ず 、 \0 で 始 ま る 8 進 数 の エ ス ケ ー プ シ ー ケ ン ス は 4 桁 ま で で す 。

%q

printf は 対 応 す る argument を シ ェ ル の 入 力 と し て 再 利 用 で き る フ ォ ー マ ッ ト で 出 力 し ま す 。

%(datefmt)T

printfdatefmtstrftime(3) の 書 式 文 字 列 と し て 使 っ て 日 付 と 時 刻 の 文 字 列 を 出 力 し ま す 。 対 応 す る argument は 、 紀 元 (1970年 1 月 1 日 00:00:00 UTC) か ら の 秒 数 を 表 す 整 数 値 で す 。 argument に は 2 つ の 特 別 な 値 が 使 え ま す 。 −1 は 現 在 時 刻 を 表 し ま す 。 −2 は シ ェ ル が 起 動 し た 時 刻 を 表 し ま す 。 文 字 列 で な い フ ォ ー マ ッ ト 指 定 に 対 す る 引 き 数 は 、 C の 定 数 と し て 扱 わ れ ま す 。 た だ し 、 先 頭 の プ ラ ス と マ イ ナ ス の 記 号 は 許 さ れ ま す 。 ま た 、 先 頭 の 文 字 が シ ン グ ル ク ォ ー ト や ダ ブ ル ク ォ ー ト で あ れ ば 、 続 く 文 字 の ASCII コ ー ド の 値 が 引 き 数 の 値 と な り ま す 。

format は 必 要 に 応 じ て 再 利 用 さ れ 、 全 て の arguments を 処 理 し ま す 。 与 え ら れ た よ り も 多 く の argumentsformat が 必 要 と す る 場 合 、 余 分 の フ ォ ー マ ッ ト 指 定 は 、 0 と 空 文 字 列 の う ち 、 適 切 な 方 が 指 定 さ れ た か の よ う に 動 作 し ま す 。 成 功 し た 場 合 の 返 り 値 は 0 で 、 失 敗 し た 場 合 の 返 り 値 は 0 以 外 で す 。

pushd [−n] [+n] [−n]
pushd
[−n] [dir] デ ィ レ ク ト リ を デ ィ レ ク ト リ の ス タ ッ ク に 追 加 す る か 、 ス タ ッ ク を ロ ー テ ー ト さ せ ま す 。 こ の と き 、 新 し い ス タ ッ ク の 最 も 上 に あ る も の を カ レ ン ト の 作 業 デ ィ レ ク ト リ に し ま す 。 引 き 数 を 与 え な け れ ば 、 一 番 上 の 2 つ の デ ィ レ ク ト リ を 交 換 し 、 0 を 返 し ま す 。 た だ し 、 デ ィ レ ク ト リ ス タ ッ ク が 空 の 場 合 を 除 き ま す 。 引 き 数 を 与 え た 場 合 に は 、 以 下 の 意 味 を 持 ち ま す :

−n デ ィ レ ク ト リ を ス タ ッ ク に 追 加 し た と き に 、 通 常 の デ ィ レ ク ト リ 変 更 を 行 い ま せ ん 。 し た が っ て 、 ス タ ッ ク だ け が 操 作 さ れ ま す 。

+n ス タ ッ ク を ロ ー テ ー ト さ せ 、

n 番 目 の デ ィ レ ク ト リ を 一 番 上 に し ま す 。 こ の と き dirs が 表 示 す る リ ス ト は 左 か ら 数 え 始 め 、 そ の 左 端 は 0 と な り ま す 。

n ス タ ッ ク を ロ ー テ ー ト さ せ 、

n 番 目 の デ ィ レ ク ト リ を 一 番 上 に

し ま す 。 こ の と き dirs が 表 示 す る リ ス ト は 右 か ら 数 え 始 め 、 そ の 右 端 は 0 と な り ま す 。

dir

dir を デ ィ レ ク ト リ ス タ ッ ク の 一 番 上 に 追 加 し 、 そ の デ ィ レ ク ト リ を 新 し い カ レ ン ト の 作 業 デ ィ レ ク ト リ に し ま す 。

pushd コ マ ン ド が 成 功 す る と 、 dirs コ マ ン ド も 実 行 さ れ ま す 。 2 番 目 の 形 式 を 使 っ た 場 合 、 dir へ の cd が 失 敗 し な け れ ば 、 pushd は 0 を 返 し ま す 。 最 初 の 形 式 を 使 っ た 場 合 に は 、 デ ィ レ ク ト リ ス タ ッ ク が 空 の 場 合 、 デ ィ レ ク ト リ ス タ ッ ク の 存 在 し な い 要 素 が 指 定 さ れ た 場 合 、 指 定 さ れ た 新 し い カ レ ン ト デ ィ レ ク ト リ へ の デ ィ レ ク ト リ 変 更 が 失 敗 し た 場 合 以 外 は 、 pushd は 基 本 的 に は 0 を 返 し ま す 。

pwd [−LP] 現 在 の 作 業 デ ィ レ ク ト リ の 絶 対 パ ス 名 を 出 力 し ま す 。 −P オ プ シ ョ ン が 指 定 さ れ た 場 合 や 、 組 み 込 み コ マ ン ド set−o physical オ プ シ ョ ン が 有 効 に な っ て い る 場 合 に は 、 シ ン ボ リ ッ ク リ ン ク を 展 開 し た パ ス 名 が 出 力 さ れ ま す 。 −L オ プ シ ョ ン を 使 う と 、 出 力 さ れ る パ ス 名 に は シ ン ボ リ ッ ク リ ン ク が 含 ま れ て い る か も し れ ま せ ん 。 カ レ ン ト デ ィ レ ク ト リ の 名 前 を 読 む 際 に エ ラ ー が 起 き た り 、 不 正 な オ プ シ ョ ン が 指 定 さ れ た り し な け れ ば 、 返 却 ス テ ー タ ス は 0 と な り ま す 。
read
[−ers] [−a aname] [−d delim] [−i text] [−n nchars] [−N nchars] [−p
prompt
] [−t timeout] [−u fd] [name ...] 標 準 入 力 、 ま た は −u オ プ シ ョ ン の 引 き 数 と し て 指 定 さ れ た フ ァ イ ル ・ デ ィ ス ク リ プ タ ー fd か ら 1 行 を 読 み 込 み 、 最 初 の 単 語 を 最 初 の name に 代 入 し 、 2 番 目 の 単 語 を 2 番 目 の name に 代 入 し ま す 。 以 降 も 同 様 で す 。 余 っ た 単 語 と そ れ ら の 間 の 区 切 り 文 字 は 、 最 後 の name に 代 入 さ れ ま す 。 name よ り も 標 準 入 力 か ら 読 み 込 ん だ 単 語 の 方 が 少 な い 場 合 に は 、 余 っ て い る name に は 空 文 字 列 が 値 と し て 代 入 さ れ ま す 。 IFS 中 の 文 字 が 、 行 を 単 語 に 分 割 す る た め に 使 わ れ ま す 。 バ ッ ク ス ラ ッ シ ュ 文 字 (\) を 使 う と 、 次 に 読 み 込 ん だ 文 字 の 特 殊 な 意 味 を 消 し た り 、 行 を 連 結 し た り で き ま す 。 オ プ シ ョ ン が 与 え ら れ て い れ ば 、 以 下 の 意 味 を 持 ち ま す :

−a aname 単 語 を 配 列 変 数 aname に イ ン デ ッ ク ス 順 に 代 入 し ま す 。 イ ン デ ッ ク ス は 0 か ら 始 ま り ま す 。 新 し い 値 が 代 入 さ れ る 前 に aname は 削 除 さ れ ま す 。 他 の name 引 き 数 は 無 視 さ れ ま す 。
−d
delim 改 行 で は な く 、 delim の 最 初 の 文 字 が 、 入 力 行 を 終 了 す る た め に 使 わ れ ま す 。

−e 標 準 入 力 を 端 末 か ら 読 み 込 む 場 合 、

readline (前 述 の

READLINE ラ イ ブ ラ リ の セ ク シ ョ ン を 参 照 ) を 使 っ て 行 を 取 得 し ま す 。 readline は 現 在 の (行 編 集 が そ れ ま で 有 効 に な っ て い な け れ ば デ フ ォ ル ト の ) 編 集 設 定 を 使 い ま す 。

−i text 行 を 取 得 す る の に readline が 使 わ れ る と き 、 入 力 を 開 始 す る 前 に 編 集 バ ッ フ ァ に text が 置 か れ ま す 。
−n
nchars 組 み 込 み コ マ ン ド read は 、 入 力 行 全 体 が 読 み 込 ま れ る の を 待 た ず 、 nchars 文 字 を 読 み 込 ん だ 時 点 で 戻 り ま す 。 た だ し 、 nchars 文 字 が 読 み 込 ま れ る 前 に 区 切 り 文 字 が 現 わ れ た と き は 、 区 切 り 文 字 を 優 先 し ま す 。
−N
nchars 入 力 行 全 体 が 読 み 込 ま れ る の を 待 た ず 、 nchars 文 字 を 読 み 込 ん だ 時 点 で 戻 り ま す 。 た だ し 、 入 力 に EOF が 現 れ た と き や 、 read が タ イ ム ア ウ ト に な っ た と き を 除 き ま す 。 入 力 に 区 切 り 文 字 が 現 れ て も 特 別 扱 い は せ ず 、 nchars 文 字 を 読 み 込 む ま で は read が 戻 る こ と は あ り ま せ ん 。
−p
prompt 入 力 を 読 み 込 も う と す る 前 に 標 準 エ ラ ー 出 力 に prompt を 表 示 し ま す 。 末 尾 に 改 行 は 付 き ま せ ん 。 プ ロ ン プ ト が 表 示 さ れ る の は 、 入 力 を 端 末 か ら 読 み 込 む 場 合 だ け で す 。

−r バ ッ ク ス ラ ッ シ ュ は エ ス ケ ー プ 文 字 と し て 作 用 し ま せ ん 。 バ ッ ク ス ラ ッ シ ュ は 行 の 一 部 と み な さ れ ま す 。 特 に 、 バ ッ ク ス ラ ッ シ ュ と 改 行 の 組 み 合 わ せ を 使 っ て 複 数 の 行 を 接 続 す る こ と は で き ま せ ん 。

−s 静 か な

(silent) モ ー ド 。 端 末 に 入 力 が 行 わ れ て も 、 文 字 は エ コ ー さ れ ま せ ん 。
−t
timeout 入 力 行 全 体 が timeout 秒 以 内 で 読 み 込 ま れ な い 場 合 、 read を タ イ ム ア ウ ト さ せ て 、 失 敗 の 状 態 を 返 し ま す 。 timeout は 小 数 部 を 持 つ 十 進 数 で も か ま い ま せ ん 。 こ の オ プ シ ョ ン は 、 read が 入 力 を 端 末 や パ イ プ 、 そ の 他 の 特 殊 フ ァ イ ル か ら 読 み 込 ん で い る 場 合 に の み 効 果 が あ り ま す 。 通 常 の フ ァ イ ル か ら 読 み 込 ん で い る 場 合 に は 影 響 あ り ま せ ん 。 timeout が 0 の と き は 、 read は 指 定 し た フ ァ イ ル ・ デ ィ ス ク リ プ タ ー か ら 読 み 込 め る 状 態 で あ れ ば 成 功 の 状 態 を 返 し 、 そ う で な け れ ば 失 敗 の 状 態 を 返 し ま す 。 タ イ ム ア ウ ト 時 間 を 超 え た 場 合 、 終 了 ス テ ー タ ス は 128 よ り 大 き い 値 に な り ま す 。

−u fd フ ァ イ ル ・ デ ィ ス ク リ プ タ ー

fd か ら 入 力 を 読 み 込 み ま す 。

name が 全 く 与 え ら れ て い な い 場 合 、 読 み 込 ま れ た 行 は 変 数 REPLY に 代 入 さ れ ま す 。 フ ァ イ ル 末 尾 に 到 達 し た 場 合 、 read が タ イ ム ア ウ ト し た 場 合 (こ の 場 合 に は 終 了 ス テ ー タ ス は 128 よ り 大 き い 値 に な り ま す )、 −u の 引 き 数 と し て 不 正 な フ ァ イ ル ・ デ ィ ス ク リ プ タ ー が 指 定 し た 場 合 以 外 は 、 終 了 コ ー ド は 0 で す 。

readonly [−aAf] [−p] [name[=word] ...] 指 定 さ れ た name に 読 み 込 み 専 用 の 印 を 付 け ま す 。 そ れ 以 降 は 、 こ れ ら の name の 値 を 変 更 す る こ と は で き ま せ ん 。 −f オ プ シ ョ ン を 与 え た 場 合 、 name に 対 応 す る 関 数 に 同 様 の 印 が 付 き ま す 。 −a オ プ シ ョ ン を 与 え る と 、 配 列 変 数 だ け が 対 象 と な り ま す 。 −A オ プ シ ョ ン を 与 え る と 、 連 想 配 列 変 数 だ け が 対 象 と な り ま す 。 両 方 の オ プ シ ョ ン を 与 え る と 、 −A が 優 先 さ れ ま す 。 name 引 き 数 が 全 く 与 え ら れ て な い 場 合 、 ま た は −p オ プ シ ョ ン が 与 え ら れ た 場 合 、 読 み 込 み 専 用 の 名 前 全 て の 一 覧 が 出 力 さ れ ま す 。 ほ か の オ プ シ ョ ン を 合 わ せ て 指 定 す る と 、 出 力 を 読 み 込 み 専 用 の 名 前 の 一 部 に 限 定 し ま す 。 −p オ プ シ ョ ン を 使 う と 、 入 力 と し て 再 利 用 で き る よ う な フ ォ ー マ ッ ト で 出 力 が 行 わ れ ま す 。 変 数 名 に =word が 続 く と 、 変 数 の 値 に word が 設 定 さ れ ま す 。 返 却 ス テ ー タ ス は 基 本 的 に 0 で す が 、 無 効 な オ プ シ ョ ン が あ っ た 場 合 、 name の い ず れ か が 有 効 な シ ェ ル 変 数 名 で な か っ た 場 合 、 −f オ プ シ ョ ン の 際 に 関 数 で な い name を 与 え た 場 合 は 除 き ま す 。
return
[n] 指 定 し た 返 り 値 n で 関 数 を 終 了 さ せ ま す 。 n を 省 略 す る と 、 返 却 ス テ ー タ ス は 関 数 内 で 最 後 に 実 行 し た コ マ ン ド の 返 却 ス テ ー タ ス に な り ま す 。 関 数 の 外 側 で 使 わ れ て い る が 、 . (source) コ マ ン ド に よ る ス ク リ プ ト の 実 行 中 で あ る 場 合 、 シ ェ ル は そ の ス ク リ プ ト の 実 行 を 止 め 、 n ま た は ス ク リ プ ト 内 で 最 後 に 実 行 さ れ た コ マ ン ド の 終 了 ス テ ー タ ス を ス ク リ プ ト の 終 了 ス テ ー タ ス と し て 返 し ま す 。 関 数 の 外 側 で . に よ る ス ク リ プ ト の 実 行 中 以 外 に 使 わ れ た 場 合 、 返 却 ス テ ー タ ス は 偽 と な り ま す 。 関 数 や ス ク リ プ ト か ら 実 行 が 戻 る 前 に 、 RETURN ト ラ ッ プ に 設 定 さ れ た コ マ ン ド が 実 行 さ れ ま す 。
set
[−−abefhkmnptuvxBCEHPT] [−o option−name] [arg ...]
set
[+abefhkmnptuvxBCEHPT] [+o option−name] [arg ...] オ プ シ ョ ン な し の 場 合 は 、 シ ェ ル 変 数 全 て の 名 前 と 値 の 組 が 表 示 さ れ ま す 。 表 示 は 、 現 在 設 定 さ れ て い る 変 数 を 設 定 や 再 設 定 を す る 入 力 と し て 再 利 用 で き る フ ォ ー マ ッ ト で 行 わ れ ま す 。 読 み 込 み 専 用 の 変 数 は 再 設 定 で き ま せ ん 。 posix モ ー ド で は シ ェ ル 変 数 だ け が 表 示 さ れ ま す 。 出 力 は 現 在 の ロ ケ ー ル に 従 っ て ソ ー ト さ れ ま す 。 オ プ シ ョ ン が 指 定 さ れ て い る 場 合 、 オ プ シ ョ ン は シ ェ ル の 属 性 を 設 定 ま た は 解 除 し ま す 。 オ プ シ ョ ン が 処 理 さ れ た 後 に 残 っ て い る 引 き 数 が あ れ ば 、 こ れ は 位 置 パ ラ メ ー タ の 値 と し て 扱 わ れ 、 $1, $2, ... $n の 順 に 代 入 さ れ ま す 。 オ プ シ ョ ン が 指 定 さ れ て い れ ば 、 以 下 の 意 味 を 持 ち ま す :

−a 値 を 変 更 し た り 新 規 に 設 定 し た り し た 変 数 お よ び 関 数 が 、

(こ

れ 以 降 に 実 行 す る コ マ ン ド の ) 環 境 と し て 自 動 的 に エ ク ス ポ ー ト さ れ ま す 。

−b 終 了 し た バ ッ ク グ ラ ウ ン ド ジ ョ ブ の ス テ ー タ ス 報 告 を 、 次 の プ ラ イ マ リ プ ロ ン プ ト の 前 で は な く 、 即 座 に 行 い ま す 。 こ れ は ジ ョ ブ 制 御 が 有 効 な 場 合 に 限 り 有 効 で す 。

−e パ イ プ ラ イ ン

(1 つ の 単 純 な コ マ ン ド か ら な る も の で も よ い )、 括 弧 で 囲 ま れ た サ ブ シ ェ ル の コ マ ン ド 、 ブ レ ー ス (前 述 の シ ェ ル の 文 法 を 参 照 ) で 囲 ま れ た コ マ ン ド の リ ス ト の 一 部 と し て 実 行 さ れ た コ マ ン ド の 1 つ が 0 で な い ス テ ー タ ス で 終 了 し た 場 合 、 即 座 に 終 了 し ま す 。 た だ し 、 失 敗 し た コ マ ン ド が 、 キ ー ワ ー ド while ま た は until の 直 後 の コ マ ン ド の 一 部 で あ る 場 合 、 予 約 語 if ま た は elif に 続 く 条 件 式 の 一 部 で あ る 場 合 、 && ま た は || に よ る コ マ ン ド の リ ス ト の 一 部 で あ る 場 合 (最 後 の &&|| の 後 の コ マ ン ド を 除 く )、 パ イ プ ラ イ ン の 中 の 最 後 の コ マ ン ド 以 外 で あ る 、 コ マ ン ド の 返 り 値 が ! で 反 転 さ れ て い る 場 合 、 の い ず れ か で あ れ ば 、 シ ェ ル は 終 了 し ま せ ん 。 ERR に 対 す る ト ラ ッ プ が 設 定 さ れ て い れ ば 、 シ ェ ル が 終 了 す る 前 に 実 行 さ れ ま す 。 こ の オ プ シ ョ ン は シ ェ ル の 環 境 と 各 サ ブ シ ェ ル の 環 境 に 別 々 に 適 用 さ れ (前 述 の コ マ ン ド 実 行 環 境 を 参 照 )、 サ ブ シ ェ ル は サ ブ シ ェ ル 内 の 全 て の コ マ ン ド を 実 行 す る 前 に 終 了 す る か も し れ ま せ ん 。

−f パ ス 名 展 開 を 無 効 に し ま す 。

−h 実 行 時 に 参 照 で き る よ う に コ マ ン ド の 位 置 を 記 憶 し ま す 。 こ れ は デ フ ォ ル ト で 有 効 に な っ て い ま す 。

−k コ マ ン ド 名 の 前 に あ る 代 入 文 だ け で な く 、 引 数 と し て 指 定 さ れ た 全 て 代 入 文 も 、 そ の コ マ ン ド に 対 す る 環 境 変 数 に 追 加 さ れ ま す 。

−m 監 視 モ ー ド 。 ジ ョ ブ 制 御 は 有 効 に な り ま す 。 ジ ョ ブ 制 御

(前 述 の ジ ョ ブ 制 御 セ ク シ ョ ン を 参 照 ) を サ ポ ー ト し て い る シ ス テ ム 上 の 対 話 的 シ ェ ル で は 、 こ の オ プ シ ョ ン は デ フ ォ ル ト で 有 効 で す 。 別 の プ ロ セ ス グ ル ー プ で 実 行 さ れ た バ ッ ク グ ラ ウ ン ド プ ロ セ ス と 、 こ れ ら の 終 了 ス テ ー タ ス が 書 か れ た 行 が 、 プ ロ セ ス の 終 了 時 に 表 示 さ れ ま す 。

−n コ マ ン ド を 読 み 込 み ま す が 実 行 は し ま せ ん 。 こ れ を 使 う と シ ェ ル ス ク リ プ ト の 文 法 エ ラ ー を チ ェ ッ ク で き ま す 。 こ の オ プ シ ョ ン は 対 話 的 シ ェ ル で は 無 視 さ れ ま す 。

−o option−name

option−name に は 、 以 下 の い ず れ か を 指 定 で き ま す :
allexport

−a と 同 じ で す 。

braceexpand

−B と 同 じ で す 。

emacs

emacs 形 式 の コ マ ン ド 行 編 集 イ ン タ フ ェ ー ス を 使 い ま す 。 こ れ は シ ェ ル が 対 話 的 な 場 合 に は 、 デ フ ォ ル ト で 有 効 で す 。 た だ し 、 −−noediting オ プ シ ョ ン 付 き で シ ェ ル を 実 行 し た 場 合 は 除 き ま す 。 こ れ は 、 read −e で の 編 集 イ ン タ フ ェ ー ス に も 影 響 し ま す 。

errexit

−e と 同 じ で す 。

errtrace

−E と 同 じ で す 。

functrace

−T と 同 じ で す 。

hashall

−h と 同 じ で す 。

histexpand

−H と 同 じ で す 。

history コ マ ン ド 履 歴 を 有 効 に し ま す 。 コ マ ン ド 履 歴 に つ い て は 履 歴 セ ク シ ョ ン で 説 明 し て い ま す 。 こ の オ プ シ ョ ン は 、 対 話 的 シ ェ ル で は デ フ ォ ル ト で 有 効 で す 。

ignoreeof シ ェ ル コ マ ン ド の ’’IGNOREEOF=10’’ を 実 行 し た 場 合 と 同 じ 効 果 を 持 ち ま す (前 述 の シ ェ ル 変 数 を 参 照 )。

keyword

−k と 同 じ で す 。

monitor

−m と 同 じ で す 。

noclobber

−C と 同 じ で す 。

noexec

−n と 同 じ で す 。

noglob

−f と 同 じ で す 。

nolog

現 在 は 無 視 さ れ ま す 。

notify

−b と 同 じ で す 。

nounset

−u と 同 じ で す 。

onecmd

−t と 同 じ で す 。

physical

−P と 同 じ で す 。

pipefail 設 定 さ れ て い る 場 合 、 パ イ プ ラ イ ン の 返 り 値 は 、 0 以 外 の ス テ ー タ ス で 終 了 し た 最 後 の (一 番 右 の ) コ マ ン ド の 値 に な り ま す 。 パ イ プ ラ イ ン の 全 て の コ マ ン ド が 成 功 の 状 態 で 終 了 す る と 0 に な り ま す 。 こ の オ プ シ ョ ン は 、 デ フ ォ ル ト で 無 効 で す 。

posix

bash の 動 作 の う ち 、 デ フ ォ ル ト の 振 舞 い が POSIX 標 準 と 異 な る 部 分 を 、 POSIX 標 準 に 準 拠 す る よ う に 変 更 し ま す (posix モ ー ド )。

privileged

−p と 同 じ で す 。

verbose

−v と 同 じ で す 。

vi

vi 形 式 の コ マ ン ド 行 編 集 イ ン タ フ ェ ー ス を 使 い ま す 。 こ れ は 、 read −e で の 編 集 イ ン タ フ ェ ー ス に も 影 響 し ま す 。

xtrace

−x と 同 じ で す 。

option−name な し で −o オ プ シ ョ ン を 与 え た 場 合 、 現 在 の オ プ シ ョ ン が 出 力 さ れ ま す 。 option−name な し で +o オ プ シ ョ ン を 与 え た 場 合 、 現 在 の オ プ シ ョ ン 設 定 を 再 生 成 す る set コ マ ン ド の 列 が 標 準 出 力 に 出 力 さ れ ま す 。

−p 特 権

(privileged) モ ー ド を 有 効 に し ま す 。 こ の モ ー ド で は

$ENV $BASH_ENV フ ァ イ ル は 処 理 さ れ ず 、 シ ェ ル 関 数 は 環 境 か ら 継 承 さ れ ず 、 SHELLOPTS, BASHOPTS, CDPATH, GLOBIGNORE 環 境 変 数 は 定 義 さ れ て い て も 無 視 さ れ ま す 。 実 ユ ー ザ (グ ル ー プ ) ID と 異 な る 実 効 ユ ー ザ (グ ル ー プ ) ID で シ ェ ル が 起 動 さ れ 、 か つ −p オ プ シ ョ ン が 与 え ら れ て い な い 場 合 、 こ れ ら の 動 作 が 行 わ れ 、 実 効 ユ ー ザ ID に は 実 ユ ー ザ ID が 設 定 さ れ ま す 。 起 動 時 に −p オ プ シ ョ ン が 与 え ら れ た 場 合 、 実 効 ユ ー ザ ID は 再 設 定 さ れ ま せ ん 。 こ の オ プ シ ョ ン を 無 効 に す る と 、 実 効 ユ ー ザ ID と 実 効 グ ル ー プ ID に は 、 実 ユ ー ザ ID と 実 グ ル ー プ ID が 設 定 さ れ ま す 。

−t コ マ ン ド を

1 つ 読 み 込 み 、 実 行 し て か ら 終 了 し ま す 。

−u パ ラ メ ー タ 展

開 の 実 行 中 に 、 特 殊 パ ラ メ ー タ "@" と "*" 以 外 で 設 定 さ れ て い な い 変 数 や パ ラ メ ー タ を エ ラ ー と し て 扱 い ま す 。 設 定 さ れ て い な い 変 数 や パ ラ メ ー タ を 展 開 し よ う と し た 場 合 、 シ ェ ル は エ ラ ー メ ッ セ ー ジ を 出 力 し ま す 。 シ ェ ル が 対 話 的 で な け れ ば 、 0 で な い ス テ ー タ ス で 終 了 し ま す 。
−v

シ ェ ル の 入 力 行 を 、 読 み 込 ん だ 際 に 表 示 し ま す 。

−x 単 純 な コ マ ン ド

for コ マ ン ド 、 case コ マ ン ド 、 select

マ ン ド 、 算 術 for コ マ ン ド を そ れ ぞ れ 展 開 し た 後 、 PS4 を 展 開 し た 値 を 表 示 し 、 そ の 後 に そ の コ マ ン ド と 展 開 し た 引 き 数 や 、 結 び 付 い た 単 語 の リ ス ト を 表 示 し ま す 。

−B シ ェ ル は ブ レ ー ス 展 開

(前 述 の ブ レ ー ス 展 開 を 参 照 ) を 実 行

し ま す 。 こ れ は デ フ ォ ル ト で 有 効 で す 。

−C 設 定 さ れ て い る 場 合 、

bash は リ ダ イ レ ク ト 演 算 子 >, >&, <>

で 既 存 の フ ァ イ ル を 上 書 き し ま せ ん 。 上 書 き が で き る の は 、 リ ダ イ レ ク ト 演 算 子 >|> の 代 わ り に 使 っ た と き で す 。

−E 設 定 さ れ て い る 場 合 、

ERR の ト ラ ッ プ は 、 シ ェ ル 関 数 、 コ マ

ン ド 置 換 、 サ ブ シ ェ ル 環 境 で 実 行 さ れ る コ マ ン ド に 継 承 さ れ ま す 。 通 常 、 こ の よ う な 場 面 で は ERR の ト ラ ッ プ は 継 承 さ れ ま せ ん 。

−H

! 形 式 の 履 歴 置 換 を 有 効 に し ま す 。 こ の オ プ シ ョ ン は 、 シ ェ ル が 対 話 的 な と き に は デ フ ォ ル ト で 有 効 で す 。

−P

設 定 さ れ て い る 場 合 、 cd の よ う な 現 在 の 作 業 デ ィ レ ク ト リ を 変 更 す る コ マ ン ド を 実 行 す る と き に 、 シ ェ ル は シ ン ボ リ ッ ク リ ン ク を 辿 り ま せ ん 。 代 わ り に 物 理 的 デ ィ レ ク ト リ 構 造 が 使 わ れ ま す 。 デ フ ォ ル ト で は 、 bash が カ レ ン ト デ ィ レ ク ト リ を 変 更 す る コ マ ン ド を 実 行 す る 際 に は 、 デ ィ レ ク ト リ の 論 理 的 な 接 続 が 辿 ら れ ま す 。

−T

設 定 さ れ て い る 場 合 、 DEBUGRETURN の ト ラ ッ プ は 、 シ ェ ル 関 数 、 コ マ ン ド 置 換 、 サ ブ シ ェ ル 環 境 で 実 行 さ れ る コ マ ン ド に 継 承 さ れ ま す 。 通 常 、 こ の よ う な 場 面 で は DEBUGRETURN の ト ラ ッ プ は 継 承 さ れ ま せ ん 。

−−

こ の オ プ シ ョ ン の 後 に 引 き 数 が 続 い て い な い 場 合 に は 、 位 置 パ ラ メ ー タ の 設 定 が 取 り 消 さ れ ま す 。 引 き 数 が 続 い て い る 場 合 に は 、 位 置 パ ラ メ ー タ に arg が 設 定 さ れ ま す 。 arg で 始 ま る も の が 含 ま れ て い て も 、 オ プ シ ョ ン で は な く 位 置 パ ラ メ ー タ と し て 扱 わ れ ま す 。

オ プ シ ョ ン の 終 わ り を 示 し ま す 。 残 り の arg は 全 て 位 置 パ ラ メ ー タ に 代 入 さ れ ま す 。 −x オ プ シ ョ ン と −v オ プ シ ョ ン は 無 効 に な り ま す 。 arg が な い 場 合 に は 、 位 置 パ ラ メ ー タ の 内 容 は 変 化 し ま せ ん 。 特 に 断 ら な い 限 り 、 各 オ プ シ ョ ン は デ フ ォ ル ト で 無 効 に な っ て い ま す 。 − の 代 わ り に + を 使 う と 、 こ れ ら の オ プ シ ョ ン は 無 効 に な り ま す 。 オ プ シ ョ ン は シ ェ ル を 起 動 す る 際 の 引 き 数 と し て も 指 定 で き ま す 。 現 在 の オ プ シ ョ ン の 集 合 は 、 $− で 知 る こ と が で き ま す 。 不 正 な オ プ シ ョ ン が 無 け れ ば 、 終 了 ス テ ー タ ス は 必 ず 真 と な り ま す 。

shift [n]

n+1 ... か ら の 位 置 パ ラ メ ー タ の 名 前 を 変 え 、 $1 ... と し ま す 。 $# か ら $#n+1 ま で の 数 字 で 表 さ れ る パ ラ メ ー タ は unset さ れ ま す 。 n は 0 以 上 $# 以 下 の 数 で な け れ ば な り ま せ ん 。 n が 0 な ら ば 、 ど の パ ラ メ ー タ も 変 更 さ れ ま せ ん 。 n が 与 え ら れ な い 場 合 に は 、 1 が 指 定 さ れ た も の と み な さ れ ま す 。 n$# よ り 大 き い 場 合 、 位 置 パ ラ メ ー タ は 変 化 し ま せ ん 。 n$# よ り 大 き い 場 合 や 0 よ り 小 さ い 場 合 に は 、 返 却 ス テ ー タ ス は 0 よ り 大 き い 数 に な り ま す 。 そ れ 以 外 の 場 合 に は 0 に な り ま す 。

shopt [−pqsu] [−o] [optname ...] シ ェ ル の オ プ シ ョ ン 動 作 を 制 御 す る 変 数 の 値 を ト グ ル さ せ ま す 。 オ プ シ ョ ン が な い 場 合 や 、 −p オ プ シ ョ ン が 指 定 さ れ て い る 場 合 に は 、 設 定 可 能 な オ プ シ ョ ン 全 て の リ ス ト が 表 示 さ れ ま す 。 表 示 の 際 に は 、 そ れ ぞ れ が 設 定 さ れ て い る か ど う か も 示 さ れ ま す 。 オ プ シ ョ ン の 表 示 は 、 入 力 と し て 再 利 用 で き る フ ォ ー マ ッ ト で 行 わ れ ま す 。 そ の 他 の オ プ シ ョ ン は 、 以 下 の 意 味 を 持 っ て い ま す :

−s

optname を そ れ ぞ れ 有 効 に し ま す (設 定 し ま す )。

−u

optname を そ れ ぞ れ 無 効 に し ま す (設 定 解 除 し ま す )。

−q

通 常 の 出 力 を 止 め ま す (静 か な モ ー ド )。 返 却 ス テ ー タ ス は optname が 設 定 さ れ て い る か ど う か を 示 し ま す 。 複 数 の optname 引 き 数 と −q が 指 定 さ れ て い る 場 合 に は 、 全 て の optnames が 有 効 で あ る と き に 返 却 ス テ ー タ ス が 0 と な り ま す 。 そ れ 以 外 の と き に は 、 0 で な い 値 と な り ま す 。
−o

optname の 値 を 、 組 み 込 み コ マ ン ド set−o オ プ シ ョ ン で 定 義 さ れ て い る も の に 制 限 し ま す 。

引 き 数 optname な し で −s オ プ シ ョ ン ま た は −u オ プ シ ョ ン を 使 っ た 場 合 、 そ れ ぞ れ 設 定 さ れ て い る も の 、 ま た は 設 定 さ れ て い な い も の だ け に 表 示 が 限 定 さ れ ま す 。 特 に 断 ら な い 限 り 、 shopt オ プ シ ョ ン は デ フ ォ ル ト で 無 効 (設 定 解 除 ) に な っ て い ま す 。 オ プ シ ョ ン を リ ス ト 表 示 し た と き の 返 却 ス テ ー タ ス は 、 全 て の optnames が 有 効 に な っ て い る 場 合 は 0 と な り ま す 。 そ れ 以 外 の 場 合 に は 0 で な い 値 と な り ま す 。 設 定 ま た は 設 定 取 り 消 し の オ プ シ ョ ン の と き に は 、 optname が 不 正 な シ ェ ル オ プ シ ョ ン で な け れ ば 、 返 却 ス テ ー タ ス は 0 と な り ま す 。

shopt オ プ シ ョ ン の リ ス ト を 以 下 に 示 し ま す :

autocd 設 定 さ れ て い る 場 合 、 デ ィ レ ク ト リ の 名 前 の コ マ ン ド 名 は 、 そ れ が

cd コ マ ン ド の 引 き 数 に 指 定 さ れ た も の と し て 実 行 さ れ ま す 。 こ の オ プ シ ョ ン が 使 わ れ る の は 対 話 的 シ ェ ル だ け で す 。
cdable_vars
設 定 さ れ て い る 場 合 、 組 み 込 み コ マ ン ド cd へ の 引 き 数 で デ ィ レ ク ト リ で な い も の は 変 数 の 名 前 と み な さ れ 、 そ の 値 が 変 更 先 の デ ィ レ ク ト リ と な り ま す 。

cdspell 設 定 さ れ て い る 場 合 、

cd コ マ ン ド の デ ィ レ ク ト リ 要 素 に お け

る ス ペ ル の ち ょ っ と し た 誤 り は 修 正 さ れ ま す 。 チ ェ ッ ク さ れ る 誤 り は 、 文 字 の 入 れ 替 わ り ・ 文 字 の 欠 け ・ 1 文 字 余 分 に あ る こ と で す 。 訂 正 で き た 場 合 に は 、 訂 正 後 の フ ァ イ ル 名 が 表 示 さ れ 、 コ マ ン ド は 続 け て 実 行 さ れ ま す 。 こ の オ プ シ ョ ン が 使 わ れ る の は 対 話 的 シ ェ ル だ け で す 。

checkhash 設 定 さ れ て い る 場 合 、 bash は ハ ッ シ ュ 表 で 見 つ け た コ マ ン ド を 実 行 す る 前 に 実 際 に 存 在 す る か ど う か を チ ェ ッ ク し ま す 。 ハ ッ シ ュ さ れ て い る コ マ ン ド が 既 に な く な っ て い る 場 合 、 通 常 の パ ス 検 索 が 行 わ れ ま す 。
checkjobs
設 定 さ れ て い る 場 合 、 bash は 対 話 的 シ ェ ル が 終 了 す る 前 に 、 停 止 中 の ジ ョ ブ や 実 行 中 の ジ ョ ブ の 状 態 を 一 覧 し ま す 。 実 行 中 の ジ ョ ブ が あ れ ば 、 シ ェ ル の 終 了 は 、 間 に ほ か の コ マ ン ド を 挟 ま ず に 2 回 目 の 終 了 が 試 み ら れ る ま で 延 期 さ れ ま す (前 述 の ジ ョ ブ 制 御 を 参 照 )。 停 止 中 の ジ ョ ブ が あ る 場 合 は 、 シ ェ ル は 常 に 終 了 を 延 期 し ま す 。
checkwinsize
設 定 さ れ て い る 場 合 、 bash は コ マ ン ド の 実 行 後 に 毎 回 ウ ィ ン ド ウ の 大 き さ を チ ェ ッ ク し 、 必 要 に 応 じ て LINES COLUMNS の 値 を 更 新 し ま す 。

cmdhist 設 定 さ れ て い る 場 合 、

bash は 複 数 行 に 分 か れ て い る コ マ ン ド

の 全 て の 行 を 、 同 じ 履 歴 エ ン ト リ に 保 存 し よ う と し ま す 。 こ れ を 使 う と 、 複 数 行 に 分 か れ て い る コ マ ン ド の 再 編 集 が 容 易 に な り ま す 。

compat31 設 定 さ れ て い る 場 合 、 bash は 、 条 件 コ マ ン ド [[=~ 演 算 子 の ク ォ ー ト さ れ た 引 き 数 に 関 し て bash version 3.1 の 動 作 に 変 更 し ま す 。
compat32
設 定 さ れ て い る 場 合 、 bash は 、 条 件 コ マ ン ド [[< 演 算 子 と > 演 算 子 に よ る ロ ケ ー ル 固 有 の 文 字 列 比 較 に 関 し て 、 version 3.2 の 動 作 に 変 更 し ま す 。 bash の bash−4.1 よ り 前 の バ ー ジ ョ ン で は 、 ASCII コ ー ド の 照 合 と strcmp(3) を 使 い ま す 。 bash−4.1 お よ び そ れ 以 後 の バ ー ジ ョ ン で は 、 現 在 の ロ ケ ー ル の 照 合 順 序 と strcoll(3) を 使 い ま す 。
compat40
設 定 さ れ て い る 場 合 、 bash は 、 条 件 コ マ ン ド [[< 演 算 子 と > 演 算 子 に よ る ロ ケ ー ル 固 有 の 文 字 列 比 較 (前 項 を 参 照 ) と コ マ ン ド リ ス ト の 解 釈 の 効 果 に 関 し て 、 version 4.0 の 動 作 に 変 更 し ま す 。
compat41
設 定 さ れ て い る 場 合 、 bash は posix モ ー ド の と き に 、 ダ ブ ル ク ォ ー ト の 中 の パ ラ メ ー タ 展 開 で シ ン グ ル ク ォ ー ト を 特 殊 文 字 と し て 扱 い ま す 。 シ ン グ ル ク ォ ー ト は 対 応 が 取 れ て い る (偶 数 個 ) 必 要 が あ り 、 シ ン グ ル ク ォ ー ト の 間 の 文 字 は ク ォ ー ト さ れ て い る も の と し て 扱 わ れ ま す 。 こ れ は version 4.1 の posix モ ー ド の 動 作 で す 。 bash の デ フ ォ ル ト の 動 作 は 前 の バ ー ジ ョ ン の ま ま で す 。
dirspell
設 定 さ れ て い る 場 合 、 bash は 指 定 さ れ た デ ィ レ ク ト リ 名 が 存 在 し な け れ ば 、 単 語 補 完 の と き に デ ィ レ ク ト リ 名 の ス ペ ル の 訂 正 を 試 み ま す 。

dotglob 設 定 さ れ て い る 場 合 、

bash は ’.’ で 始 ま る フ ァ イ ル 名 を パ

ス 名 展 開 の 結 果 に 含 め ま す 。

execfail 設 定 さ れ て い る 場 合 、 組 み 込 み コ マ ン ド exec へ の 引 き 数 と し て 指 定 さ れ た フ ァ イ ル が 実 行 で き な く て も 、 対 話 的 で な い シ ェ ル が 終 了 し ま せ ん 。 対 話 的 シ ェ ル は exec に 失 敗 し て も 終 了 し ま せ ん 。
expand_aliases
設 定 さ れ て い る 場 合 、 エ イ リ ア ス が 前 述 の エ イ リ ア ス セ ク シ ョ ン で 説 明 し た よ う に 展 開 さ れ ま す 。 こ の オ プ シ ョ ン は 、 対 話 的 な シ ェ ル で は デ フ ォ ル ト で 有 効 で す 。
extdebug
設 定 さ れ て い る 場 合 、 デ バ ッ ガ の た め の 動 作 が 有 効 に な り ま す 。

1. 組 み 込 み コ マ ン ド

declare−F オ プ シ ョ ン が 、 引

き 数 で 指 定 さ れ た 各 関 数 の ソ ー ス フ ァ イ ル 名 と 行 番 号 を 表 示 し ま す 。

2.

DEBUG の ト ラ ッ プ で 実 行 さ れ た コ マ ン ド が 0 以 外 を 返 し た と き 、 次 の コ マ ン ド は ス キ ッ プ さ れ 実 行 も さ れ ま せ ん 。

3.

DEBUG の ト ラ ッ プ で 実 行 さ れ た コ マ ン ド が 2 を 返 し 、 か つ 、 シ ェ ル が サ ブ ル ー チ ン (シ ェ ル 関 数 や 、 組 み 込 み コ マ ン ド の .source に よ り 実 行 さ れ た シ ェ ル ス ク リ プ ト ) を 実 行 し て い る と き 、 return の 呼 び 出 し が シ ミ ュ レ ー ト さ れ ま す 。

4.

上 記 の シ ェ ル 変 数 の 説 明 で 述 べ た よ う に 、 BASH_ARGC BASH_ARGV が 更 新 さ れ ま す 。

5.

関 数 の ト レ ー ス が 有 効 に な り ま す 。 コ マ ン ド 置 換 、 シ ェ ル 関 数 、 ( command ) で 起 動 さ れ た サ ブ シ ェ ル は 、 DEBUGRETURN の ト ラ ッ プ を 継 承 し ま す 。

6.

エ ラ ー の ト レ ー ス が 有 効 に な り ま す 。 コ マ ン ド 置 換 、 シ ェ ル 関 数 、 ( command ) か ら 起 動 さ れ た サ ブ シ ェ ル は 、 ERR の ト ラ ッ プ を 継 承 し ま す 。

extglob 設 定 さ れ

て い る 場 合 、 拡 張 さ れ た パ タ ー ン マ ッ チ ン グ 機 能 が 有 効 に な り ま す 。 こ れ に つ い て は 、 前 述 の パ ス 名 展 開 で 説 明 し て い ま す 。

extquote 設 定 さ れ て い る 場 合 、 ダ ブ ル ク ォ ー ト 中 の ${parameter} の 展 開 で 、 $'string' と $"string" の ク ォ ー ト が 機 能 し ま す 。 こ の オ プ シ ョ ン は 、 デ フ ォ ル ト で 有 効 で す 。

failglob 設 定 さ れ て い る 場 合 、 パ ス 名 展 開 で パ タ ー ン が フ ァ イ ル 名 の マ ッ チ に 失 敗 す る と 、 展 開 エ ラ ー に な り ま す 。
force_fignore
設 定 さ れ て い る 場 合 、 単 語 補 完 に お い て 、 シ ェ ル 変 数 FIGNORE で 指 定 さ れ た サ フ ィ ッ ク ス の 単 語 は 無 視 さ れ ま す 。 無 視 さ れ た 単 語 が 唯 一 の 補 完 候 補 で あ っ た と し て も 無 視 さ れ ま す 。 詳 し い 説 明 に つ い て は 、 前 述 の シ ェ ル 変 数 FIGNORE の 説 明 を 参 照 し て く だ さ い 。 こ の オ プ シ ョ ン は 、 デ フ ォ ル ト で 有 効 で す 。
globstar
設 定 さ れ て い る 場 合 、 ** と い う パ タ ー ン が パ ス 名 展 開 で 使 わ れ る と 、 深 さ 0 以 上 の デ ィ レ ク ト リ や サ ブ デ ィ レ ク ト リ の 全 て の フ ァ イ ル に マ ッ チ し ま す 。 直 後 に / が 続 く 場 合 に は 、 デ ィ レ ク ト リ と サ ブ デ ィ レ ク ト リ の み に マ ッ チ し ま す 。
gnu_errfmt
設 定 さ れ て い る 場 合 、 シ ェ ル の エ ラ ー メ ッ セ ー ジ は GNU 標 準 の エ ラ ー メ ッ セ ー ジ の 形 式 で 出 力 さ れ ま す 。
histappend
設 定 さ れ て い る 場 合 、 シ ェ ル の 終 了 時 に 変 数 HISTFILE の 値 で 指 定 し て い る フ ァ イ ル に 履 歴 リ ス ト が 追 加 さ れ ま す 。 フ ァ イ ル へ の 上 書 き は 行 わ れ な く な り ま す 。
histreedit
こ の 変 数 が 設 定 さ れ て お り 、 か つ readline が 使 わ れ て い る 場 合 、 ユ ー ザ は 失 敗 し た 履 歴 置 換 を 再 編 集 で き ま す 。
histverify
こ の 変 数 が 設 定 さ れ て お り 、 か つ readline が 使 わ れ て い る 場 合 、 履 歴 置 換 の 結 果 は 即 座 に は シ ェ ル の パ ー ザ に 渡 さ れ ま せ ん 。 そ の 代 わ り 、 結 果 と し て 得 ら れ た 行 は readline の 編 集 バ ッ フ ァ に 読 み 込 ま れ 、 さ ら に 修 正 で き ま す 。
hostcomplete
こ の 変 数 が 設 定 さ れ て お り 、 か つ readline が 使 わ れ て い る 場 合 、 bash@ を 含 む 単 語 を 補 完 す る と き に ホ ス ト 名 補 完 を 実 行 し よ う と し ま す (前 述 の READLINE ラ イ ブ ラ リ の セ ク シ ョ ン に お け る 補 完 を 参 照 )。 こ れ は デ フ ォ ル ト で 有 効 に な っ て い ま す 。
huponexit
設 定 さ れ て い る 場 合 、 bash は 対 話 的 な ロ グ イ ン シ ェ ル を 終 了 す る と き に 、 全 て の ジ ョ ブ に SIGHUP を 送 り ま す 。
interactive_comments
設 定 さ れ て い る 場 合 、 # で 始 ま る 単 語 に つ い て 、 そ の 単 語 と そ の 行 の 残 り の 文 字 を 対 話 的 シ ェ ル に 無 視 さ せ る こ と が で き ま す (前 述 の コ メ ン ト セ ク シ ョ ン を 参 照 )。 こ の オ プ シ ョ ン は デ フ ォ ル ト で 有 効 に な っ て い ま す 。
lastpipe
設 定 さ れ て お り 、 か つ ジ ョ ブ 制 御 が 有 効 で な け れ ば 、 シ ェ ル は バ ッ ク グ ラ ウ ン ド で の 実 行 で は な い パ イ プ ラ イ ン の 最 後 の コ マ ン ド を 現 在 の シ ェ ル 環 境 で 実 行 し ま す 。

lithist 設 定 さ れ て お り 、 か つ

cmdhist オ プ シ ョ ン が 有 効 な ら ば 、 複

数 行 に 分 か れ て い る コ マ ン ド は (セ ミ コ ロ ン で 区 切 ら れ る の で は な く ) で き る 限 り 途 中 に 改 行 を 埋 め 込 む こ と で 履 歴 に 保 存 さ れ ま す 。

login_shell シ ェ ル が ロ グ イ ン シ ェ ル と し て 起 動 さ れ る と (前 述 の INVOCATION を 参 照 )、 こ の オ プ シ ョ ン が 設 定 さ れ ま す 。 こ の 値 を 変 更 す る こ と は で き ま せ ん 。
mailwarn
設 定 さ れ て お り 、 か つ bash が メ ー ル の チ ェ ッ ク に 使 う フ ァ イ ル が 前 回 の チ ェ ッ ク 以 降 に ア ク セ ス さ れ て い る 場 合 、 メ ッ セ ー ジ “The mail in mailfile has been read” が 表 示 さ れ ま す 。
no_empty_cmd_completion
設 定 さ れ て お り 、 か つ readline が 使 わ れ て い る 場 合 、 空 行 に 対 し て コ マ ン ド 補 完 を さ せ よ う と し た と き に 、 bash は 補 完 候 補 を PATH か ら 検 索 し ま せ ん 。
nocaseglob
設 定 さ れ て い る 場 合 、 bash は パ ス 名 展 開 (前 述 の パ ス 名 展 開 を 参 照 ) を 行 う と き に 、 フ ァ イ ル 名 の 大 文 字 と 小 文 字 を 区 別 せ ず に マ ッ チ ン グ を 行 い ま す 。
nocasematch
設 定 さ れ て い る 場 合 、 bash は 条 件 コ マ ン ド case[[ 実 行 時 の パ タ ー ン マ ッ チ で 大 文 字 小 文 字 を 区 別 せ ず に パ タ ー ン マ ッ チ を 行 い ま す 。
nullglob
設 定 さ れ て い る 場 合 、 bash は ど の フ ァ イ ル に も マ ッ チ し な い パ タ ー ン (前 述 の パ ス 名 展 開 を 参 照 ) を 、 そ の 文 字 列 自 身 で は な く 、 空 文 字 列 に 展 開 し ま す 。
progcomp
設 定 さ れ て い る 場 合 、 プ ロ グ ラ ム 補 完 機 能 (前 述 の プ ロ グ ラ ム 補 完 を 参 照 ) が 有 効 に な り ま す 。 こ の オ プ シ ョ ン は デ フ ォ ル ト で 有 効 に な っ て い ま す 。
promptvars
設 定 さ れ て い る 場 合 、 プ ロ ン プ ト 文 字 列 に 対 し て パ ラ メ ー タ 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 、 ク ォ ー ト 削 除 が 行 わ れ ま す 。 こ の 展 開 は 前 述 の プ ロ ン プ ト セ ク シ ョ ン で 説 明 し た 展 開 が 行 わ れ た 後 に 行 わ れ ま す 。 こ の オ プ シ ョ ン は デ フ ォ ル ト で 有 効 に な っ て い ま す 。
restricted_shell
シ ェ ル が 制 限 モ ー ド で 起 動 さ れ た 場 合 、 こ の オ プ シ ョ ン が 設 定 さ れ ま す (後 述 の 制 限 付 き の シ ェ ル セ ク シ ョ ン を 参 照 )。 こ の 値 を 変 更 す る こ と は で き ま せ ん 。 こ れ は 起 動 フ ァ イ ル が 実 行 さ れ る と き に も リ セ ッ ト さ れ な い の で 、 シ ェ ル が 制 限 付 き か ど う か を 起 動 フ ァ イ ル 内 部 で 知 る こ と が で き ま す 。
shift_verbose
設 定 さ れ て い る 場 合 、 組 み 込 み コ マ ン ド shift に お い て シ フ ト の 回 数 が 位 置 パ ラ メ ー タ の 数 を 超 え る と 、 エ ラ ー メ ッ セ ー ジ が 出 力 さ れ ま す 。
sourcepath
設 定 さ れ て い る 場 合 、 組 み 込 み コ マ ン ド source (.) は PATH の 値 を 使 っ て 、 引 き 数 と し て 与 え ら れ た フ ァ イ ル を 含 む デ ィ レ ク ト リ を 探 し ま す 。 こ の オ プ シ ョ ン は デ フ ォ ル ト で 有 効 で す 。
xpg_echo
設 定 さ れ て い る 場 合 、 組 み 込 み コ マ ン ド echo は デ フ ォ ル ト で バ ッ ク ス ラ ッ シ ュ に よ る エ ス ケ ー プ シ ー ケ ン ス を 展 開 し ま す 。

suspend [−f]

SIGCONT シ グ ナ ル を 受 け 取 る ま で 、 シ ェ ル の 実 行 を サ ス ペ ン ド し ま す 。 ロ グ イ ン シ ェ ル は サ ス ペ ン ド で き ま せ ん 。 −f オ プ シ ョ ン を 与 え る と 、 こ の 動 作 が 上 書 き さ れ 、 ロ グ イ ン シ ェ ル が サ ス ペ ン ド で き る よ う に な り ま す 。 シ ェ ル が ロ グ イ ン シ ェ ル か つ −f が 与 え ら れ て い な い 場 合 と 、 ジ ョ ブ 制 御 が 有 効 で な い 場 合 と を 除 い て 、 返 却 ス テ ー タ ス は 0 で す 。

test expr
[
expr ] 条 件 式 expr を 評 価 し た 結 果 に 基 づ い て 、 ス テ ー タ ス 0 ま た は 1 を 返 し ま す 。 演 算 子 と オ ペ ラ ン ド そ れ ぞ れ は 別 々 の 引 き 数 で な け れ ば な り ま せ ん 。 式 は 前 述 の 条 件 式 セ ク シ ョ ン で 説 明 し た プ ラ イ マ リ で 構 成 さ れ ま す 。 test は オ プ シ ョ ン を 受 け 取 ら ず 、 引 き 数 −− を オ プ シ ョ ン の 終 わ り を 示 す も の と し て 受 け 取 り も 無 視 も し ま せ ん 。 式 は 次 に 示 す 演 算 子 を 使 っ て 結 合 で き ま す 。 優 先 度 の 高 い 順 に 示 し ま す 。 式 の 評 価 は 後 で 述 べ る よ う に 引 き 数 の 数 に 依 存 し ま す 。 引 き 数 が 5 つ 以 上 の と き は 演 算 子 の 優 先 度 に 従 い ま す 。

! expr

expr が 偽 な ら ば 真 に な り ま す 。

( expr )

expr の 値 を 返 し ま す 。 こ れ を 使 う と 、 通 常 の 演 算 子 の 優 先 度 を 変 更 で き ま す 。

expr1a expr2

expr1expr2 が 両 方 と も 真 な ら ば 真 に な り ま す 。

expr1o expr2

expr1expr2 の い ず れ か が 真 な ら ば 真 に な り ま す 。

test お よ び [ は 、 引 き 数 の 数 に 基 づ い た 規 則 の 集 合 を 用 い て 条 件 式 を 評 価 し ま す 。 引 き 数 が
0 個 こ の 式 は 偽 で す 。 引 き 数 が
1 個 引 き 数 が 空 で な い 場 合 に 限 り 真 に な り ま す 。 引 き 数 が
2 個 最 初 の 引 き 数 が ! な ら ば 、 2 番 目 の 引 き 数 が 空 の 場 合 に 限 り 真 に な り ま す 。 最 初 の 引 き 数 が 、 既 に 条 件 式 セ ク シ ョ ン で 説 明 し た 単 項 条 件 演 算 子 の い ず れ か で あ れ ば 、 単 項 の 評 価 が 真 の 場 合 に 式 は 真 と な り ま す 。 最 初 の 引 き 数 が 正 し い 単 項 条 件 演 算 子 で な け れ ば 、 式 は 偽 と な り ま す 。 引 き 数 が
3 個 以 下 の 順 に 条 件 が 適 用 さ れ ま す 。 2 番 目 の 引 き 数 が 、 既 に 条 件 式 セ ク シ ョ ン で 説 明 し た 二 値 条 件 演 算 子 の い ず れ か で あ れ ば 、 最 初 の 引 き 数 と 3 番 目 の 引 き 数 を オ ペ ラ ン ド と し て 使 っ た 二 値 評 価 の 結 果 が 式 の 結 果 と な り ま す 。 引 き 数 が 3 個 の 場 合 、 −a−o は 二 値 演 算 子 と し て 扱 わ れ ま す 。 最 初 の 引 き 数 が ! で あ れ ば 、 2 番 目 と 3 番 目 の 引 き 数 を 使 っ た 、 引 き 数 2 つ の 評 価 の 結 果 を 否 定 し た も の が 値 と な り ま す 。 最 初 の 引 き 数 が ( で あ り 、 3 番 目 の 引 き 数 が ) な ら ば 、 2 番 目 の 引 き 数 を 使 っ て 引 き 数 1 つ の 評 価 を 行 っ た 値 が 結 果 と な り ま す 。 こ れ ら 以 外 の 場 合 に は 、 式 は 偽 と な り ま す 。 引 き 数 が
4 個 最 初 の 引 き 数 が ! な ら ば 、 残 り の 引 き 数 で 作 っ た 引 き 数 3 つ の 式 の 値 を 否 定 し た も の が 結 果 と な り ま す 。 そ れ 以 外 の 場 合 に は 、 先 に 挙 げ た 規 則 を 使 っ た 優 先 度 に 従 っ て 式 が 展 開 ・ 評 価 さ れ ま す 。 引 き 数 が
5 個 以 上 先 に 挙 げ た 規 則 を 使 っ た 優 先 度 に 従 っ て 式 が 展 開 ・ 評 価 さ れ ま す 。

test[ で は 、 演 算 子 <> は ASCII コ ー ド に 基 づ き 辞 書 順 に ソ ー ト し ま す

times シ ェ ル と シ ェ ル か ら 実 行 し た プ ロ セ ス の そ れ ぞ れ に つ い て 、 累 積 の ユ ー ザ 時 間 と シ ス テ ム 時 間 を 加 え た も の を 出 力 し ま す 。 返 却 ス テ ー タ ス は

0 で す 。
trap
[−lp] [[arg] sigspec ...] シ ェ ル が シ グ ナ ル sigspec を 受 け 取 る と 、 コ マ ン ド arg が 読 み 込 ま れ て 、 実 行 さ れ ま す 。 arg が 存 在 し な い (か つ sigspec が 一 つ 指 定 さ れ た ) 場 合 か 、 arg の 場 合 、 指 定 さ れ た シ グ ナ ル は 全 て オ リ ジ ナ ル の 動 作 (シ ェ ル の 起 動 時 に 設 定 さ れ て い た 値 ) に リ セ ッ ト さ れ ま す 。 arg が 空 文 字 列 で あ る 場 合 、 そ れ ぞ れ の sigspec で 指 定 さ れ た シ グ ナ ル は 、 シ ェ ル と シ ェ ル が 起 動 し た コ マ ン ド か ら 無 視 さ れ ま す 。 arg な し で −p オ プ シ ョ ン が 与 え ら れ た 場 合 、 各 sigspec に 関 連 付 け ら れ た trap コ マ ン ド が 表 示 さ れ ま す 。 引 き 数 が 全 く な い か 、 −p だ け が 与 え ら れ た 場 合 、 trap は 各 シ グ ナ ル に 関 連 付 け ら れ た コ マ ン ド の リ ス ト を 出 力 し ま す 。 −l オ プ シ ョ ン を 与 え る と 、 シ ェ ル は シ グ ナ ル 名 と 対 応 す る 番 号 の リ ス ト を 出 力 し ま す 。 そ れ ぞ れ の sigspec は 、 <signal.h> で 定 義 さ れ て い る シ グ ナ ル 名 、 ま た は シ グ ナ ル 番 号 で す 。 シ グ ナ ル 名 は 大 文 字 小 文 字 は 区 別 さ れ ず 、 先 頭 の SIG は 省 略 可 能 で す 。

sigspecEXIT (0) で あ れ ば 、 シ ェ ル の 終 了 時 に コ マ ン ド arg が 実 行 さ れ ま す 。 sigspecDEBUG で あ れ ば 、 各 々 の 単 純 な コ マ ン ドfor コ マ ン ド 、 case コ マ ン ド 、 select コ マ ン ド 、 各 々 の 算 術 for コ マ ン ド の 前 、 お よ び シ ェ ル 関 数 の 最 初 の コ マ ン ド の 実 行 前 (前 述 の シ ェ ル の 文 法 セ ク シ ョ ン を 参 照 ) に 、 コ マ ン ド arg が 実 行 さ れ ま す 。 DEBUG の ト ラ ッ プ の 影 響 に つ い て の 詳 細 は 組 み 込 み コ マ ン ド shoptextdebug オ プ シ ョ ン の 説 明 を 参 照 し て く だ さ い 。 sigspecRETURN で あ れ ば 、 シ ェ ル 関 数 の 実 行 、 ま た は 組 み 込 み コ マ ン ド の .source で 実 行 さ れ た ス ク リ プ ト の 実 行 が 終 わ る た び に コ マ ン ド arg が 実 行 さ れ ま す 。

sigspecERR で あ れ ば 、 単 純 な コ マ ン ド が 0 以 外 の 終 了 ス テ ー タ ス の と き に コ マ ン ド arg が 実 行 さ れ ま す 。 た だ し 、 失 敗 し た コ マ ン ド が 、 while ま た は until キ ー ワ ー ド 直 後 の コ マ ン ド リ ス ト に 含 ま れ る 場 合 、 if 文 の 条 件 に 含 ま れ る 場 合 、 &&|| の リ ス ト 中 で 実 行 す る コ マ ン ド に 含 ま れ る 場 合 、 お よ び 、 コ マ ン ド の 戻 り 値 が ! で 反 転 さ れ て い る 場 合 に は 、 ERR の ト ラ ッ プ は 実 行 さ れ ま せ ん 。 こ れ ら は errexit オ プ シ ョ ン が 従 う 条 件 と 同 じ で す 。 シ ェ ル に 入 る 際 に 無 視 さ れ る シ グ ナ ル は 、 ト ラ ッ プ も リ セ ッ ト も で き ま せ ん 。 無 視 さ れ な か っ た シ グ ナ ル の ト ラ ッ プ は 、 サ ブ シ ェ ル や サ ブ シ ェ ル 環 境 で は 作 ら れ た と き に 元 の 値 に リ セ ッ ト さ れ ま す 。 sigspec の い ず れ か が 不 正 で あ れ ば 、 返 却 ス テ ー タ ス は 偽 に な り ま す 。 そ れ 以 外 の 場 合 に は 、 trap は 真 を 返 し ま す 。

type [−aftpP] name [name ...] オ プ シ ョ ン な し の 場 合 に は 、 各 name を コ マ ン ド 名 と し て 使 っ た と き に 、 そ れ が ど の よ う に 解 釈 さ れ る か を 示 し ま す 。 −t オ プ シ ョ ン を 使 う と 、 name が エ イ リ ア ス 、 シ ェ ル の 予 約 語 、 関 数 、 組 み 込 み コ マ ン ド 、 デ ィ ス ク 上 の フ ァ イ ル の い ず れ か の 場 合 、 type は そ れ ぞ れ alias, keyword, function, builtin, file と い う 文 字 列 を 出 力 し ま す 。 name が 見 つ か ら な い 場 合 は 何 も 出 力 さ れ ず 、 偽 の 終 了 ス テ ー タ ス が 返 さ れ ま す 。 −p オ プ シ ョ ン を 使 う と 、 typename を コ マ ン ド 名 と し て 指 定 し た 場 合 に 実 行 さ れ る デ ィ ス ク フ ァ イ ル の 名 前 を 返 し ま す 。 た だ し 、 ’’type -t name’’ が file を 返 さ な い 場 合 は 、 何 も 返 し ま せ ん 。 −P オ プ シ ョ ン を 使 う と 、 ’’type -t name’’ が file を 返 さ な い 場 合 で も namePATH か ら 探 し ま す 。 コ マ ン ド が ハ ッ シ ュ さ れ て い る 場 合 、 −p−P は ハ ッ シ ュ さ れ て い る 値 を 表 示 し ま す 。 こ の 場 合 、 表 示 さ れ る の は 、 必 ず し も PATH 中 で 最 初 に 現 わ れ る フ ァ イ ル と は 限 り ま せ ん 。 −a オ プ シ ョ ン を 使 う と 、 typename と い う 名 前 の 実 行 フ ァ イ ル が あ る 場 所 を 全 て 出 力 し ま す 。 −p オ プ シ ョ ン が 同 時 に 使 わ れ て い な い 場 合 に 限 り 、 エ イ リ ア ス や 関 数 も 出 力 さ れ ま す 。 −a を 使 う と き に は 、 ハ ッ シ ュ さ れ て い る コ マ ン ド の 表 は 参 照 さ れ ま せ ん 。 −f オ プ シ ョ ン を 使 う と 、 組 み 込 み コ マ ン ド command と 同 じ よ う に 、 シ ェ ル 関 数 を 探 し ま せ ん 。 type は 、 す べ て の 引 き 数 が 見 つ か れ ば 真 を 返 し 、 い ず れ か が 見 つ か ら な け れ ば 偽 を 返 し ま す 。
ulimit
[−HSTabcdefilmnpqrstuvx [limit]] こ れ を 使 う と 、 シ ェ ル お よ び シ ェ ル が 起 動 す る プ ロ セ ス が 利 用 で き る リ ソ ー ス を 制 御 で き ま す 。 た だ し 、 こ の よ う な 制 御 が で き る シ ス テ ム の 場 合 に 限 り ま す 。 −H オ プ シ ョ ン と −S オ プ シ ョ ン は 、 そ れ ぞ れ 指 定 さ れ た リ ソ ー ス に 対 す る 強 い 制 限 (hard limit) と 弱 い 制 限 (soft limit) を 設 定 し ま す 。 強 い 制 限 は 一 度 設 定 す る と 、 root 以 外 の ユ ー ザ が 増 や す こ と は で き ま せ ん 。 弱 い 制 限 は 強 い 制 限 の 値 ま で は 増 や せ ま す 。 −H−S が ど ち ら も 指 定 さ れ て い な い 場 合 、 強 い 制 限 と 弱 い 制 限 が 両 方 と も 設 定 さ れ ま す 。 limit の 値 に は 、 数 字 (単 位 は リ ソ ー ス に 応 じ て 規 定 )、 ま た は hard, soft, unlimited が 指 定 で き ま す 。 hard, soft, unlimited は 、 そ れ ぞ れ 現 在 の 強 い 制 限 、 現 在 の 弱 い 制 限 、 制 限 な し を 表 し ま す 。 limit を 省 略 す る と 、 リ ソ ー ス の 弱 い 制 限 の 現 在 値 が 表 示 さ れ ま す 。 た だ し 、 −H が 与 え ら れ て い る 場 合 は 除 き ま す 。 複 数 の リ ソ ー ス が 指 定 さ れ て い る と き は 、 制 限 名 と 単 位 が 値 の 前 に 出 力 さ れ ま す 。 他 の オ プ シ ョ ン は 以 下 の よ う に 解 釈 さ れ ま す :

−a 現 在 の 制 限 を 全 て 表 示 す る

−b ソ ケ ッ ト バ ッ フ ァ の 最 大 サ イ ズ

−c 生 成 さ れ る コ ア

(core) フ ァ イ ル の 最 大 サ イ ズ

−d プ ロ セ ス の デ ー タ セ グ メ ン ト の 最 大 サ イ ズ

−e ス ケ ジ ュ ー ル 優 先 度

("nice") の 最 大 値

−f シ ェ ル と そ の 子 プ ロ セ ス が 生 成 で き る フ ァ イ ル の 最 大 サ イ ズ

−i 保 留 中 シ グ ナ ル の 最 大 数

−l メ モ リ に ロ ッ ク で き る 最 大 サ イ ズ

−m 常 駐 セ ッ ト サ イ ズ

(resident set size) の 最 大 値 (多 く の シ ス テ ム は こ の 制 限 を 守 り ま せ ん )

−n オ ー プ ン で き る フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の 最 大 数

(ほ と ん

ど の シ ス テ ム で は 、 こ の 値 を 設 定 す る こ と は で き ま せ ん )

−p

512 バ イ ト ブ ロ ッ ク 単 位 で の パ イ プ の サ イ ズ (こ れ は 設 定 で き な い か も し れ ま せ ん )

−q

POSIX メ ッ セ ー ジ キ ュ ー の 最 大 バ イ ト 数

−r

リ ア ル タ イ ム ・ ス ケ ジ ュ ー リ ン グ の 優 先 度 の 最 大 値

−s 最 大 ス タ ッ ク サ イ ズ

−t

CPU 時 間 の 最 大 量 (秒 単 位 )

−u

1 人 の ユ ー ザ が 使 用 で き る 最 大 の プ ロ セ ス 数

−v

そ の シ ェ ル が 使 用 で き る 最 大 の 仮 想 メ モ リ 量 (シ ス テ ム に よ っ て は 、 子 プ ロ セ ス も 含 ま れ る )
−x

フ ァ イ ル ロ ッ ク の 最 大 数

−T ス レ ッ ド の 最 大 数

limit が 指 定 さ れ た 場 合 、 そ の 値 が 指 定 さ れ た リ ソ ー ス の 新 し い 値 と な り ま す (−a は 表 示 専 用 で す )。 オ プ シ ョ ン が 全 く 指 定 さ れ な か っ た 場 合 は 、 −f が 指 定 さ れ た も の と み な さ れ ま す 。 値 は 1024 バ イ ト 単 位 で 増 え ま す が 、 例 外 と し て −t は 秒 単 位 、 −p 512 バ イ ト ブ ロ ッ ク 単 位 、 −T, −b, −n, −n, −u は 単 位 な し の 値 で す 。 返 却 ス テ ー タ ス は 基 本 的 に 0 で す が 、 不 正 な オ プ シ ョ ン や 引 き 数 が 渡 さ れ た 場 合 、 新 し い 制 限 を 設 定 す る 際 に エ ラ ー が 起 き た 場 合 は 除 き ま す 。

umask [−p] [−S] [mode] ユ ー ザ の フ ァ イ ル 生 成 マ ス ク に mode を 設 定 し ま す 。 mode が 数 字 で 始 ま る 場 合 に は 、 こ れ は 8 進 数 と 解 釈 さ れ ま す 。 そ れ 以 外 の 場 合 に は 、 chmod(1) に 指 定 す る の と 同 様 の シ ン ボ リ ッ ク な モ ー ド マ ス ク と 解 釈 さ れ ま す 。 mode が 省 略 さ れ る と 、 現 在 の マ ス ク の 値 が 出 力 さ れ ま す 。 −S オ プ シ ョ ン を 指 定 す る と 、 マ ス ク は シ ン ボ リ ッ ク な 形 式 で 表 示 さ れ ま す 。 デ フ ォ ル ト の 出 力 は 8 進 の 数 値 で す 。 −p オ プ シ ョ ン が 指 定 さ れ 、 か つ mode が 省 略 さ れ た 場 合 、 入 力 と し て 再 利 用 で き る 形 式 で 出 力 が 行 わ れ ま す 。 モ ー ド が 正 常 に 変 更 で き た 場 合 や 、 mode 引 き 数 が 全 く 与 え ら れ な か っ た 場 合 に は 、 返 却 ス テ ー タ ス は 0 と な り ま す 。 そ れ 以 外 の 場 合 に は 偽 と な り ま す 。
unalias
[−a] [name ...] 定 義 さ れ て い る エ イ リ ア ス の リ ス ト か ら name を 削 除 し ま す 。 −a が 与 え ら れ て い る 場 合 に は 、 エ イ リ ア ス 定 義 は 全 て 削 除 さ れ ま す 。 与 え ら れ た name が 定 義 さ れ て い る エ イ リ ア ス で な い 場 合 以 外 は 、 返 却 ス テ ー タ ス は 真 に な り ま す 。
unset
[−fv] [name ...]

name そ れ ぞ れ に つ い て 、 対 応 す る 変 数 や 関 数 を 削 除 し ま す 。 オ プ シ ョ ン が 全 く 指 定 さ れ て い な い 場 合 や 、 −v オ プ シ ョ ン が 指 定 さ れ た 場 合 は 、 各 name は シ ェ ル 変 数 を 参 照 し ま す 。 読 み 込 み 専 用 の 変 数 の 設 定 を 消 す こ と は で き ま せ ん 。 −f が 指 定 さ れ て い る 場 合 、 各 name は シ ェ ル 関 数 を 参 照 し 、 そ の 関 数 の 定 義 が 削 除 さ れ ま す 。 設 定 が 消 さ れ た 変 数 や 関 数 は 全 て 、 そ れ 以 降 の コ マ ン ド に 渡 さ れ る 環 境 変 数 か ら も 削 除 さ れ ま す 。 COMP_WORDBREAKS, RANDOM, SECONDS, LINENO, HISTCMD, FUNCNAME, GROUPS, DIRSTACK の い ず れ か の 設 定 を 消 し た 場 合 、 こ れ ら が 持 つ 特 別 な 特 性 も な く な り ま す 。 こ れ は 後 で 再 設 定 し て も 元 に 戻 る こ と は あ り ま せ ん 。 name が 読 み 込 み 専 用 の 場 合 以 外 は 、 終 了 ス テ ー タ ス は 真 と な り ま す 。

wait [n ...] 指 定 さ れ た 各 プ ロ セ ス を wait し 、 そ の 終 了 ス テ ー タ ス を 返 し ま す 。 各 n は プ ロ セ ス ID ま た は ジ ョ ブ 指 定 で す 。 ジ ョ ブ 指 定 を 与 え た 場 合 、 そ の ジ ョ ブ の パ イ プ ラ イ ン に 含 ま れ る 全 て の プ ロ セ ス を wait し ま す 。 n が 与 え ら れ て い な い 場 合 に は 、 現 在 ア ク テ ィ ブ な 全 て の 子 プ ロ セ ス を wait し 、 返 却 ス テ ー タ ス は 0 と な り ま す 。 n が 存 在 し な い プ ロ セ ス や ジ ョ ブ を 指 定 し て い る 場 合 、 返 却 ス テ ー タ ス は 127 に な り ま す 。 そ れ 以 外 の 場 合 、 返 却 ス テ ー タ ス は wait し て い た 最 後 の プ ロ セ ス ま た は ジ ョ ブ の 終 了 ス テ ー タ ス と な り ま す 。

制 限 付 き の シ ェ ル (RESTRICTED SHELL)

bashrbash と い う 名 前 で 起 動 し た 場 合 や 、 起 動 時 に −r オ プ シ ョ ン を 指 定 し た 場 合 に は 、 シ ェ ル は 制 限 さ れ た 状 態 に な り ま す 。 制 限 付 き の シ ェ ル は 、 標 準 の シ ェ ル よ り も 細 か く 制 御 さ れ た 環 境 を 用 意 し た い と き に 使 わ れ ま す 。 制 限 付 き の シ ェ ル は bash と 全 く 同 じ よ う に 動 作 し ま す が 、 以 下 の よ う な こ と が 許 可 さ れ な か っ た り 実 行 さ れ な か っ た り し ま す 。

cd を 使 っ て デ ィ レ ク ト リ を 変 更 す る こ と

SHELL, PATH, ENV, BASH_ENV の 値 の 設 定 や 設 定 取 り 消 し を 行 う こ と

/ を 含 む コ マ ン ド 名 を 指 定 す る こ と

組 み 込 み コ マ ン ド . の 引 き 数 と し て / を 含 む フ ァ イ ル 名 を 指 定 す る こ と

組 み 込 み コ マ ン ド hash の オ プ シ ョ ン −p の 引 き 数 と し て / を 含 む フ ァ イ ル 名 を 指 定 す る こ と

起 動 時 に シ ェ ル 環 境 か ら 関 数 定 義 を イ ン ポ ー ト す る こ と

• 起 動 時 に シ ェ ル 環 境 か ら

SHELLOPTS の 値 を 解 釈 す る こ と

• リ ダ イ レ ク シ ョ ン 演 算 子

>, >|, <>, >&, &>, >> を 使 っ て リ ダ イ レ ク ト を 行 な う こ と

組 み 込 み コ マ ン ド exec を 用 い て 、 シ ェ ル を 別 の コ マ ン ド に 置 き 換 え る こ と

組 み 込 み コ マ ン ド enable−f オ プ シ ョ ン と −d オ プ シ ョ ン を 使 っ て 、 組 み 込 み コ マ ン ド を 追 加 ・ 削 除 す る こ と

組 み 込 み コ マ ン ド enable を 使 っ て 、 無 効 に な っ て い る 組 み 込 み コ マ ン ド を 有 効 に す る こ と

組 み 込 み コ マ ン ド command−p オ プ シ ョ ン を 指 定 す る こ と

set +rset +o restricted を 用 い て 制 限 モ ー ド を 解 除 す る こ と

こ れ ら の 制 限 は 、 何 ら か の 起 動 フ ァ イ ル を 読 み 込 ん だ 後 に 適 用 さ れ ま す 。 シ ェ ル ス ク リ プ ト で あ る と 判 明 し た フ ァ イ ル が 実 行 さ れ る と き (前 述 の コ マ ン ド の 実 行 を 参 照 )、 rbash は ス ク リ プ ト 実 行 用 に 立 ち 上 げ た シ ェ ル で は 制 限 を 全 て 無 効 に し ま す 。

関 連 項 目

Bash Reference Manual, Brian Fox and Chet Ramey
The Gnu Readline Library
, Brian Fox and Chet Ramey
The Gnu History Library
, Brian Fox and Chet Ramey
Portable Operating System Interface (POSIX) Part 2: Shell and
Utilities
, IEEE
sh(1), ksh(1), csh(1)
emacs(1), vi(1)
readline(3)

フ ァ イ ル

/bin/bash

bash の 実 行 フ ァ イ ル 。

/etc/profile シ ス テ ム 全 体 用 の 初 期 化 フ ァ イ ル 。 ロ グ イ ン シ ェ ル が 実 行 し ま す 。
~/.bash_profile
個 人 用 の 初 期 化 フ ァ イ ル 。 ロ グ イ ン シ ェ ル が 実 行 し ま す 。
~/.bashrc
対 話 シ ェ ル ご と に 実 行 さ れ る 、 個 人 用 の 起 動 フ ァ イ ル 。
~/.bash_logout
個 人 用 の ロ グ イ ン シ ェ ル 後 処 理 フ ァ イ ル 。 ロ グ イ ン シ ェ ル の 終 了 時 に 実 行 さ れ ま す 。
~/.inputrc
個 人 用 の readline 初 期 化 フ ァ イ ル 。

作 者

Brian Fox, Free Software Foundation
bfox [AT] gnu.org

Chet Ramey, Case Western Reserve University
chet.ramey [AT] case.edu

バ グ 報 告

bash の バ グ を 見 つ け た ら 必 ず 報 告 し て く だ さ い 。 た だ し 報 告 の 前 に は 、 そ れ が 本 当 に バ グ で あ る こ と と 、 バ グ が 最 新 版 の bash で 起 こ る こ と を 確 か め て く だ さ い 。 最 新 版 は ftp://ftp.gnu.org/pub/gnu/bash/ か ら 入 手 で き ま す 。 本 当 に バ グ が あ る と 判 断 し た 場 合 に は 、 bashbug コ マ ン ド を 使 っ て バ グ 報 告 を 行 い ま す 。 バ グ を 修 正 し て く だ さ っ た 場 合 に は 、 ぜ ひ そ の 内 容 も 一 緒 に メ ー ル し て く だ さ い ! 提 案 や 「 哲 学 上 の 」 バ グ 報 告 は 、 bug−bash [AT] gnu.org に メ ー ル し た り 、 ニ ュ ー ス グ ル ー プ の gnu.bash.bug に 投 稿 し た り し て く だ さ っ て も か ま い ま せ ん 。 バ グ 報 告 に は 必 ず 以 下 の こ と を 書 い て く だ さ い :

bash の バ ー ジ ョ ン ハ ー ド ウ ェ ア と オ ペ レ ー テ ィ ン グ シ ス テ ム コ ン パ イ ル に 使 っ た コ ン パ イ ラ

バ グ 動 作 の 説 明 バ グ を 再 現 で き る 「 レ シ ピ 」

(簡 単 な シ ェ ル ス ク リ プ ト )

bashbug コ マ ン ド は 、 バ グ 報 告 を 送 る た め に 用 意 さ れ て い る テ ン プ レ ー ト に 、 最 初 の 3 項 目 を 自 動 的 に 書 き 込 み ま す 。 こ の オ ン ラ イ ン マ ニ ュ ア ル に 関 す る コ メ ン ト や バ グ 報 告 は chet.ramey [AT] case.edu 宛 に お 願 い し ま す 。

バ グ

bash は 大 き す ぎ る し 、 遅 す ぎ ま す 。

bash と 昔 な が ら の バ ー ジ ョ ン の sh に は ち ょ っ と し た 違 い が い く つ か あ り ま す 。 こ の 大 部 分 は POSIX の 仕 様 の せ い で 生 じ た も の で す 。 使 い 方 に よ っ て は 、 エ イ リ ア ス は 混 乱 の 元 に な り ま す 。 シ ェ ル 組 み 込 み コ マ ン ド と シ ェ ル 関 数 は 、 停 止 し た り 、 実 行 を 再 開 し た り で き ま せ ん 。 複 合 コ マ ン ド や ’a ; b ; c’ の 形 式 の コ マ ン ド 列 は 、 プ ロ セ ス の サ ス ペ ン ド を 行 う 際 に 綺 麗 に 扱 う こ と が で き ま せ ん 。 あ る プ ロ セ ス を 停 止 す る と 、 シ ェ ル は コ マ ン ド 列 の 次 の コ マ ン ド を 即 座 に 実 行 す る か ら で す 。 こ の 問 題 は コ マ ン ド 列 を 括 弧 の 中 に 置 い て サ ブ シ ェ ル に 実 行 さ せ る こ と で 解 決 で き ま す 。 こ う す れ ば 、 ひ と ま と ま り の も の と し て 停 止 で き ま す 。 配 列 変 数 は (ま だ ) エ ク ス ポ ー ト で き ま せ ん 。 一 度 に 1 つ の コ プ ロ セ ス し か ア ク テ ィ ブ に で き ま せ ん 。