Man page - bash(1)
Packages contains this manual
Available languages:
en fr es it pl ja uk zh_TW zh_CNManual
BASH
名 前書 式
著 作 権
説 明
オ プ シ ョ ン
引 き 数
起 動
定 義
予 約 語
シ ェ ル の 文 法
単 純 な コ マ ン ド (Simple Commands)
パ イ プ ラ イ ン (Pipeline)
リ ス ト
複 合 コ マ ン ド (Compound Commands)
コ プ ロ セ ス (Coprocesses)
関 数 定 義
コ メ ン ト (COMMENTS)
ク ォ ー ト
パ ラ メ ー タ
位 置 パ ラ メ ー タ (Positional Parameters)
特 殊 パ ラ メ ー タ
シ ェ ル 変 数
配 列
展 開
ブ レ ー ス 展 開
チ ル ダ 展 開
パ ラ メ ー タ の 展 開
コ マ ン ド 置 換
算 術 式 展 開
プ ロ セ ス 置 換
単 語 の 分 割
パ ス 名 展 開
ク ォ ー ト の 削 除
リ ダ イ レ ク ト
入 力 の リ ダ イ レ ク ト
出 力 の リ ダ イ レ ク ト
リ ダ イ レ ク ト に よ る 追 加 出 力
標 準 出 力 と 標 準 エ ラ ー 出 力 の リ ダ イ レ ク ト
標 準 出 力 と 標 準 エ ラ ー 出 力 の 追 加 出 力
ヒ ア ド キ ュ メ ン ト (Here Documents)
ヒ ア ス ト リ ン グ (Here Strings)
フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の 複 製
フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の 変 更
読 み 書 き の た め の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の オ ー プ ン
エ イ リ ア ス
関 数
算 術 式 評 価
条 件 式
単 純 な コ マ ン ド の 展 開
コ マ ン ド の 実 行
コ マ ン ド 実 行 環 境
環 境
終 了 ス テ ー タ ス
シ グ ナ ル
ジ ョ ブ 制 御
プ ロ ン プ ト
READLINE ラ イ ブ ラ リ
Readline の 記 法
Readline の 初 期 化
Readline の キ ー 割 り 当 て
Readline の 変 数
Readline の 条 件 構 文
検 索
Readline の コ マ ン ド 名
移 動 コ マ ン ド
履 歴 操 作 の た め の コ マ ン ド
テ キ ス ト 編 集 の た め の コ マ ン ド
キ ル と ヤ ン ク
数 値 の 引 き 数
補 完
キ ー ボ ー ド マ ク ロ
そ の 他
プ ロ グ ラ ム 補 完
履 歴 (HISTORY)
履 歴 の 展 開
イ ベ ン ト 指 示 子 (Event Designator)
単 語 指 示 子 (Word Designators)
修 飾 子 (Modifiers)
シ ェ ル の 組 み 込 み コ マ ン ド
制 限 付 き の シ ェ ル (RESTRICTED SHELL)
関 連 項 目
フ ァ イ ル
作 者
バ グ 報 告
バ グ
名 前
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 シ ェ ル ( ksh や csh ) の 便 利 な 機 能 も 採 り 入 れ ら れ て い ま す 。
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
シ ェ ル の 実 行 を 開 始 す る 前 に 、 デ バ ッ グ モ ー ド を 準 備 し ま す 。 拡 張 デ バ ッ グ モ ー ド を 有 効 に し ま す (後 述 の 組 み 込 み コ マ ン ド shopt の extdebug オ プ シ ョ ン を 参 照 )。
--dump-po-strings
-D と 同 じ で す が 、 出 力 は GNU gettext の po (ポ ー タ ブ ル オ ブ ジ ェ ク ト ) フ ァ イ ル 形 式 で 行 わ れ ま す 。
--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 コ マ ン ド ラ イ ン オ プ シ ョ ン 等 に よ り bash が POSIX モ ー ド で 起 動 さ れ る と 、 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
expression1 と expression2 が 両 方 と も 真 で あ れ ば 真 に な り ま す 。
expression1 || expression2
expression1 と expression2 の ど ち ら か が 真 で あ れ ば 真 と な り ま す 。
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-2 は list-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 桁 ) |
||
|
\x HH |
16 進 値 が HH で あ る 8 ビ ッ ト 文 字 (16 進 で 1〜 2 桁 )。 |
||
|
\u HHHH |
16 進 値 が HHHH で あ る ユ ニ コ ー ド (ISO/IEC 10646) 文 字 (16 進 1〜 4 桁 )。 |
\U HHHHHHHH
16 進 値 が HHHHHHHH で あ る ユ ニ コ ー ド (ISO/IEC 10646) 文 字 (16 進 1〜 8 桁 )。
|
\c x |
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 つ の 単 語 に 展 開 さ れ ま す 。 つ ま り 、 " $* " は " $1 c $2 c ... " と 同 じ で す 。 こ こ で 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 を 設 定 す る の は 、 拡 張 デ バ ッ グ モ ー ド の と き だ け で す (後 述 の 組 み 込 み コ マ ン ド shopt の extdebug オ プ シ ョ ン を 参 照 )。
BASH_ARGV
bash の 現 在 の 呼 び 出 し ス タ ッ ク に つ い て 、 全 て の 引 き 数 が 並 ん だ 配 列 変 数 で す 。 一 連 の 呼 び 出 し の う ち 、 最 後 に 呼 ば れ た サ ブ ル ー チ ン の 最 後 の 引 き 数 が 、 ス タ ッ ク の 一 番 上 に 置 か れ ま す 。 最 初 に 呼 ば れ た サ ブ ル ー チ ン の 最 初 の 引 き 数 が 、 ス タ ッ ク の 一 番 下 に な り ま す 。 サ ブ ル ー チ ン が 実 行 さ れ る と 、 渡 さ れ た パ ラ メ ー タ が BASH_ARGV に 追 加 さ れ ま す 。 シ ェ ル が BASH_ARGV を 設 定 す る の は 、 拡 張 デ バ ッ グ モ ー ド の と き だ け で す (後 述 の 組 み 込 み コ マ ン ド shopt の extdebug オ プ シ ョ ン を 参 照 )。
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 を 使 う と 、 ス タ ッ ク 中 の デ ィ レ ク ト リ が ス タ ッ ク 順 に 表 示 さ れ ま す 。 配 列 変 数 の 要 素 に 代 入 を 行 う と 、 既 に ス タ ッ ク に 入 っ て い る デ ィ レ ク ト リ を 変 更 で き ま す が 、 デ ィ レ ク ト リ の 追 加 と 削 除 を 行 う た め に は 、 組 み 込 み コ マ ン ド の pushd と popd を 使 わ な け れ ば な り ま せ ん 。 こ の 変 数 に 代 入 を 行 っ て も 現 在 の 作 業 デ ィ レ ク ト リ は 変 わ り ま せ ん 。 DIRSTACK を unset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。
|
EUID |
現 在 の ユ ー ザ の 実 効 ユ ー ザ ID に 展 開 さ れ ま す 。 初 期 化 は シ ェ ル の 起 動 時 に 行 わ れ ま す 。 こ の 変 数 は 読 み 込 み 専 用 で す 。 |
FUNCNAME
現 在 の 呼 び 出 し ス タ ッ ク に あ る 全 て の シ ェ ル 関 数 名 が 入 っ た 配 列 変 数 で す 。 イ ン デ ッ ク ス 0 の 要 素 は 、 実 行 中 の シ ェ ル 関 数 の 名 前 で す 。 最 も 下 の 要 素 (最 大 の イ ン デ ッ ク ス の 要 素 ) は "main". で す 。 こ の 変 数 は 、 シ ェ ル 関 数 を 実 行 し て い る 間 の み 存 在 し ま す 。 FUNCNAME へ の 代 入 は 効 果 が な く 、 エ ラ ー ス テ ー タ ス を 返 し ま す 。 FUNCNAME を unset す る と 、 こ の 変 数 の 特 殊 な 性 質 は な く な り ま す 。 後 で 再 び set し て も 元 に は 戻 り ま せ ん 。
こ の 変 数 の 各 要 素 は 、 BASH_LINENO や BASH_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
有 効 な フ ァ イ ル ・ デ ィ ス ク リ プ タ ー に 対 応 す る 整 数 を セ ッ ト す る と 、 bash は set -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 を 指 定 す る と ignorespace と ignoredups の 両 方 が 指 定 さ れ ま す 。 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 を 受 信 す る と 自 動 的 に 設 定 さ れ ま す 。 |
||
|
|
こ の パ ラ メ ー タ に フ ァ イ ル 名 ま た は デ ィ レ ク ト リ 名 が 設 定 さ れ て お り 、 か つ 変 数 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 モ ー ド に な り ま す 。 シ ェ ル の 実 行 中 に こ の 変 数 が 設 定 さ れ る と 、 bash は set -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 は 省 略 可 能 で す が 、 指 定 す る と 、 分 を 含 み 、 MM m SS . 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 で 作 り ま す 。
組 み 込 み コ マ ン ド の declare と readonly を 使 う と 、 配 列 変 数 に 対 し て 属 性 を 設 定 で き ま す 。 ど の 属 性 も 配 列 の メ ン バ 全 て に 対 し て 適 用 さ れ ま す 。
配 列 の 代 入 は name = ( value 1 ... value n ) と い う 形 式 の 複 合 代 入 (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 オ プ シ ョ ン を 使 え ば 標 準 入 力 か ら 読 み 込 ん だ 単 語 の リ ス ト を 配 列 に 代 入 で き ま す 。 組 み 込 み コ マ ン ド set と declare で は 、 別 の 変 数 へ の 代 入 に 再 利 用 で き る よ う な 形 で 配 列 の 値 を 表 示 し ま す 。
展 開
展 開 は コ マ ン ド ラ イ ン が 単 語 へ 分 割 さ れ た 後 に (コ マ ン ド ラ イ ン 上 で ) 行 わ れ ま す 。 行 わ れ る 展 開 は 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 ]} の 形 に な り ま す 。 x と y は 整 数 ま た は 1 つ の 文 字 で 、 省 略 可 能 な incr は 増 減 分 の 整 数 で す 。 整 数 が 与 え ら れ る と 、 x と y の 間 の 両 端 を 含 む 数 を 全 て 列 挙 し た 形 に 展 開 さ れ ま す 。 与 る 整 数 の 前 に 0 を 付 け る と 、 全 て の 項 が 同 じ 幅 に 揃 え ら れ ま す 。 つ ま り 、 x か y の ど ち ら か が 0 で 始 ま る 場 合 、 生 成 さ れ る 全 て の 項 が 同 じ 文 字 数 に な る よ う に 、 必 要 で あ れ ば 前 に 0 が 付 け ら れ ま す 。 文 字 が 与 え ら れ る と 辞 書 順 で x と y の 間 の 両 端 を 含 む 文 字 を 全 て 列 挙 し た 形 に 展 開 さ れ ま す 。 x と y は 同 じ 型 で あ る 必 要 が あ り ま す 。 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 は ブ レ ー ス 展 開 の 結 果 と し て 単 語 か ら ブ レ ー ス を 取 り 除 き ま す 。 例 え ば sh に file{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 の 残 り 全 部 が 含 ま れ る 部 分 文 字 列 に 展 開 し ま す 。 length と offset は 算 術 式 で す (後 述 の 算 術 式 評 価 を 参 照 )。 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 `
bash は command を 実 行 し 、 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
リ ダ イ レ ク ト 演 算 子 が > で あ り 、 か つ 組 み 込 み コ マ ン ド set で noclobber オ プ シ ョ ン が 有 効 に な っ て い る 場 合 、 word の 展 開 で 得 た フ ァ イ ル が 存 在 し 、 か つ そ れ が 通 常 フ ァ イ ル な ら ば 、 リ ダ イ レ ク ト は 失 敗 し ま す 。 リ ダ イ レ ク ト 演 算 子 が >| の 場 合 、 も し く は リ ダ イ レ ク ト 演 算 子 が > で 組 み 込 み コ マ ン ド set で noclobber オ プ シ ョ ン が 有 効 に な っ て い な い 場 合 、 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 が 一 部 で も ク ォ ー ト さ れ て い る 場 合 は 、 delimiter は word の ク ォ ー ト を ほ ど い た 結 果 (ク ォ ー ト 文 字 を 削 除 し た 結 果 ) と な り 、 ヒ ア ド キ ュ メ ン ト に 含 ま れ る 行 で は 展 開 が 行 わ れ な く な り ま す 。 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 -
を 使 う と 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の digit を n に 変 更 し ま す 。 n が 指 定 さ れ て い な い 場 合 は 、 標 準 入 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0) が 使 わ れ ま す 。 digit は n に 複 製 さ れ た 後 に ク ロ ー ズ さ れ ま す 。
同 様 に 、 演 算 子
[ n ] >& digit -
を 使 う と 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の digit を n に 変 更 し ま す 。 n が 指 定 さ れ て い な い 場 合 は 、 標 準 出 力 (フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 1) が 使 わ れ ま す 。
読 み 書 き の た め の フ ァ イ ル ・ デ ィ ス ク リ プ タ ー の オ ー プ ン
リ ダ イ レ ク ト 演 算 子
[ n ] <> word
を 使 う と 、 word を 展 開 し た 結 果 の 名 前 を 持 つ フ ァ イ ル が フ ァ イ ル ・ デ ィ ス ク リ プ タ ー n で の 読 み 書 き の た め に オ ー プ ン さ れ ま す 。 n が 指 定 さ れ て い な け れ ば 、 フ ァ イ ル ・ デ ィ ス ク リ プ タ ー 0 で 読 み 書 き が 行 わ れ ま す 。 フ ァ イ ル が 存 在 し な け れ ば 、 新 し く 生 成 さ れ ま す 。
エ イ リ ア ス
エ イ リ ア ス (alias) を 使 う と 、 あ る 単 語 が 単 純 な コ マ ン ド の 先 頭 の 単 語 と し て 使 わ れ た 場 合 に 、 こ の 文 字 列 を 別 の 単 語 に 置 換 で き ま す 。 シ ェ ル は エ イ リ ア ス の リ ス ト を 管 理 し て い ま す 。 こ の リ ス ト は 組 み 込 み コ マ ン ド の alias と unalias を 使 っ て 設 定 お よ び 削 除 で き ま す (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。 各 コ マ ン ド の 最 初 の 単 語 が ク ォ ー ト さ れ て い な い 場 合 、 エ イ リ ア ス か ど う か が 確 認 さ れ 、 エ イ リ ア ス な ら ば そ の 単 語 は そ の エ イ リ ア ス の テ キ ス ト と 置 換 さ れ ま す 。 / 、 $ 、 ` 、 = 、 シ ェ ル の メ タ 文 字 (metacharacters) や ク ォ ー ト 文 字 は エ イ リ ア ス 名 に は 使 え ま せ ん 。 エ イ リ ア ス 名 と 置 換 さ れ る テ キ ス ト に は 、 シ ェ ル の 入 力 と し て 有 効 な も の は 何 で も 含 め る こ と が で き ま す 。 こ れ に は 先 に 挙 げ た メ タ 文 字 も 含 ま れ ま す 。 置 換 さ れ た テ キ ス ト の 最 初 の 単 語 に 対 し て も エ イ リ ア ス か ど う か の 評 価 が さ れ ま す が 、 最 初 の 単 語 が 展 開 さ れ る エ イ リ ア ス と 同 じ 場 合 に は 展 開 は 一 度 し か 行 わ れ ま せ ん 。 つ ま り ls が ls -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 ト ラ ッ プ に 設 定 さ れ た コ マ ン ド が 実 行 さ れ ま す 。 関 数 の 完 了 時 に は 、 位 置 パ ラ メ ー タ の 値 と 特 殊 パ ラ メ ー タ # の 値 は 、 関 数 の 実 行 前 の 値 に 戻 り ま す 。
関 数 の 名 前 と 定 義 を リ ス ト 表 示 す る に は 、 組 み 込 み コ マ ン ド の declare や typeset を 、 オ プ シ ョ ン -f を 付 け て 実 行 し ま す 。 declare や typeset を オ プ シ ョ ン -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
file1 と file2 と で デ バ イ ス 番 号 と i-ノ ー ド 番 号 が 同 じ な ら ば 真 と な り ま す 。
file1 - nt file2
file1 が (変 更 日 時 に 関 し て ) file2 よ り 新 し い か 、 file1 が 存 在 す る が file2 が 存 在 し な け れ ば 、 真 と な り ま す 。
file1 - ot file2
file1 が file2 よ り 古 い か 、 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
現 在 の ロ ケ ー ル に お い て 、 string1 が string2 よ り も 辞 書 順 で 前 に あ る 場 合 に 真 と な り ま す 。
string1 > string2
現 在 の ロ ケ ー ル に お い て 、 string1 が string2 よ り も 辞 書 順 で 後 に あ る 場 合 に 真 と な り ま す 。
arg1 OP arg2
OP は -eq , -ne , -lt , -le , -gt , -ge . の い ず れ か で す 。 こ れ ら の 算 術 二 値 演 算 子 が 真 を 返 す の は そ れ ぞ れ 、 arg1 が arg2 に 対 し て 等 し い 場 合 、 等 し く な い 場 合 、 小 さ い 場 合 、 小 さ い か 等 し い 場 合 、 大 き い 場 合 、 大 き い か 等 し い 場 合 で す 。 arg1 や arg2 に は 、 正 ま た は 負 の 整 数 を 使 用 で き ま す 。
単 純 な コ マ ン ド の 展 開
単 純 な コ マ ン ド を 実 行 す る と 、 シ ェ ル は 以 下 に 示 す 展 開 、 代 入 、 リ ダ イ レ ク シ ョ ン を 左 か ら 右 の 順 で 実 行 し ま す 。
|
1. |
パ ー ザ が 変 数 代 入 (コ マ ン ド 名 の 前 に あ る も の ) ま た は リ ダ イ レ ク シ ョ ン と 判 断 し た 単 語 は 、 保 存 さ れ て 後 で 処 理 さ れ ま す 。 |
||
|
2. |
変 数 代 入 で も リ ダ イ レ ク シ ョ ン で も な い 単 語 が 展 開 さ れ ま す 。 も し 展 開 の 後 に 残 っ て い る 単 語 が あ れ ば 、 そ の 最 初 の 単 語 が コ マ ン ド 名 と な り 、 残 り が 引 き 数 と な り ま す 。 |
||
|
3. |
リ ダ イ レ ク シ ョ ン が 前 述 の リ ダ イ レ ク ト で 説 明 し た よ う に 実 行 さ れ ま す 。 |
||
|
4. |
変 数 代 入 の = の 後 に あ る テ キ ス ト に 対 し て 、 チ ル ダ 展 開 、 パ ラ メ ー タ 展 開 、 コ マ ン ド 置 換 、 算 術 式 展 開 、 ク ォ ー ト 削 除 が 行 わ れ ま す 。 こ の 処 理 は 変 数 を 代 入 す る 前 に 行 わ れ ま す 。 |
コ マ ン ド 名 が 残 ら な か っ た 場 合 に は 、 変 数 を 代 入 し た 結 果 が 現 在 の シ ェ ル 環 境 に 効 果 を 及 ぼ し ま す 。 そ れ 以 外 の 場 合 、 変 数 は 実 行 さ れ る コ マ ン ド の 環 境 に 追 加 さ れ る だ け で 、 現 在 の シ ェ ル 環 境 に は 影 響 を 与 え ま せ ん 。 読 み 込 み 専 用 の 変 数 に 対 し て 代 入 を し よ う と す る と エ ラ ー が 発 生 し 、 そ の コ マ ン ド は 0 で な い ス テ ー タ ス で 終 了 し ま す 。
コ マ ン ド 名 が 残 ら な か っ た 場 合 、 リ ダ イ レ ク シ ョ ン は 行 わ れ ま す が 、 現 在 の シ ェ ル 環 境 は 影 響 を 受 け ま せ ん 。 リ ダ イ レ ク シ ョ ン の エ ラ ー が 起 き る と 、 コ マ ン ド は 0 で な い ス テ ー タ ス で 終 了 し ま す 。
展 開 の 後 に コ マ ン ド 名 が 残 っ て い る 場 合 、 後 述 す る よ う に 実 行 が 進 行 し ま す 。 そ う で な い 場 合 は コ マ ン ド は 終 了 し ま す 。 展 開 の い ず れ か が コ マ ン ド 置 換 で あ る 場 合 に は 、 コ マ ン ド の 終 了 ス テ ー タ ス は 最 後 に 実 行 さ れ た コ マ ン ド 置 換 の 終 了 ス テ ー タ ス に な り ま す 。 コ マ ン ド 置 換 が 行 わ れ な か っ た 場 合 に は 、 コ マ ン ド は ス テ ー タ ス 0 で 終 了 し ま す 。
コ マ ン ド の 実 行
コ マ ン ド が 単 語 に 分 割 さ れ た 後 に 、 単 純 な コ マ ン ド と そ れ に 対 す る 引 き 数 リ ス ト (引 き 数 リ ス ト は 省 略 可 能 ) と な っ た 場 合 、 以 下 の 動 作 が 行 わ れ ま す 。
コ マ ン ド 名 に ス ラ ッ シ ュ が 含 ま れ な い 場 合 、 シ ェ ル は コ マ ン ド の 位 置 を 特 定 し よ う と し ま す 。 そ の 名 前 の シ ェ ル 関 数 が 存 在 す れ ば 、 前 に 関 数 で 説 明 し た よ う に そ の 関 数 が 呼 び 出 さ れ ま す 。 名 前 が 関 数 に マ ッ チ し な い 場 合 に は 、 シ ェ ル は シ ェ ル の 組 み 込 み コ マ ン ド の リ ス ト を 探 し ま す 。 マ ッ チ す る も の が あ っ た 場 合 、 そ の 組 み 込 み コ マ ン ド が 呼 び 出 さ れ ま す 。
名 前 が シ ェ ル 関 数 も 組 み 込 み コ マ ン ド で な く 、 か つ ス ラ ッ シ ュ を 含 ま な い 場 合 に は 、 bash は PATH の 各 要 素 を 検 索 し 、 そ の 名 前 の 実 行 フ ァ イ ル を 含 む デ ィ レ ク ト リ を 探 し ま す 。 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 が 対 話 的 で あ り 、 ト ラ ッ プ が 全 く な い と き 、 bash は SIGTERM を 無 視 し (し た が っ て kill 0 で は 対 話 シ ェ ル は kill さ れ ま せ ん )、 SIGINT を 捕 捉 し 処 理 し ま す (し た が っ て 組 み 込 み コ マ ン ド wait は 割 り 込 み 可 能 で す )。 ど ん な 場 合 で も 、 bash は SIGQUIT を 無 視 し ま す 。 ジ ョ ブ 制 御 が 有 効 な 状 態 な ら ば 、 bash は SIGTTIN , SIGTTOU , SIGTSTP を 無 視 し ま す 。
bash が 起 動 し た 外 部 コ マ ン ド は 、 シ ェ ル が 自 分 の 親 か ら 継 承 し た 値 を シ グ ナ ル ハ ン ド ラ に 設 定 し ま す 。 ジ ョ ブ 制 御 が 有 効 で な い と き に は 、 非 同 期 コ マ ン ド は 、 継 承 し た シ グ ナ ル ハ ン ド ラ に 加 え て SIGINT と SIGQUIT も 無 視 し ま す 。 コ マ ン ド 置 換 の 結 果 と し て 実 行 さ れ た コ マ ン ド は 、 キ ー ボ ー ド で 生 成 さ れ た ジ ョ ブ 制 御 シ グ ナ ル を 無 視 し ま す 。 無 視 さ れ る シ グ ナ ル は SIGTTIN , SIGTTOU , SIGTSTP で す 。
デ フ ォ ル ト で は 、 シ ェ ル は SIGHUP を 受 け 取 る と 終 了 し ま す 。 終 了 す る 前 に は 、 シ ェ ル は 実 行 中 ・ 停 止 中 の 全 て の ジ ョ ブ に 対 し て SIGHUP を 再 送 信 し ま す 。 停 止 中 の ジ ョ ブ に は SIGCONT が 送 ら れ 、 こ の ジ ョ ブ が SIGHUP を 受 け 取 る よ う に し ま す 。 特 定 の ジ ョ ブ に 対 し て シ ェ ル か ら シ グ ナ ル が 送 ら れ な い よ う に す る た め に は 、 組 み 込 み コ マ ン ド disown (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 ) を 使 っ て 、 そ の ジ ョ ブ を ジ ョ ブ テ ー ブ ル か ら 削 除 す る か 、 あ る い は disown -h を 使 っ て 、 SIGHUP を 受 け 取 ら な い よ う に マ ー ク を 付 け ま す 。
シ ェ ル オ プ シ ョ ン の huponexit が shopt を 使 っ て 設 定 さ れ て い た 場 合 、 対 話 的 な ロ グ イ ン シ ェ ル が 終 了 す る と き に 、 bash は SIGHUP を 全 て の ジ ョ ブ に 送 り ま す 。
コ マ ン ド の 完 了 を 待 っ て い る 間 に 、 ト ラ ッ プ が 設 定 さ れ た シ グ ナ ル を 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 }
format が strftime (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-u が universal-argument に 、 M-DEL が backward-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-u が universal-argument 機 能 に 割 り 当 て ら れ て い ま す 。 C-x C-r は re-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 桁 ) |
||
|
\x HH |
16 進 値 が HH で あ る 8 ビ ッ ト 文 字 (16 進 で 1〜 2 桁 )。 |
マ ク ロ の テ キ ス ト を 入 力 す る 際 に は 、 マ ク ロ 定 義 を 示 す た め に シ ン グ ル ク ォ ー ト や ダ ブ ル ク ォ ー ト を 使 わ な け れ ば な り ま せ ん 。 ク ォ ー ト さ れ て い な い テ キ ス ト は 関 数 名 と み な さ れ ま す 。 マ ク ロ 本 体 で は 、 前 述 の バ ッ ク ス ラ ッ シ ュ に よ る エ ス ケ ー プ は 展 開 さ れ ま す 。 バ ッ ク ス ラ ッ シ ュ は マ ク ロ の テ キ ス ト 内 の 他 の 文 字 を 全 て エ ス ケ ー プ し ま す 。 こ れ に は " や ' も 含 ま れ ま す 。
bash で は 、 組 み 込 み コ マ ン ド の bind を 使 っ て 、 readline の 現 在 の キ ー 割 り 当 て の 表 示 と 変 更 を 行 え ま す 。 ま た 、 組 み 込 み コ マ ン ド set に 対 し て -o オ プ シ ョ ン を 使 え ば 、 編 集 モ ー ド を 対 話 的 利 用 の 途 中 に 切 り 替 え 可 能 で す (後 述 の シ ェ ル の 組 み 込 み コ マ ン ド を 参 照 )。
Readline の 変 数
Readline に は 、 動 作 を 細 か く カ ス タ マ イ ズ す る た め に 変 数 が あ り ま す 。 変 数 は inputrc フ ァ イ ル 中 に
set variable-name value
と
い う 形 式 の 文
で 設 定 で き ま
す 。 特 に 断 ら
な い 限 り 、 readline
の 変 数 が と る
値 は
On
か
Off
の
い ず れ か で す
。 大 文 字 と 小
文 字 の 違 い は
考 慮 し ま せ ん
。 認 識 で き な
い 変 数 名 は 無
視 さ れ ま す 。
変 数 の 値 を 読
み 取 る と き 、
設 定 さ れ て な
い 場 合 や 、 空
文 字 列 、 "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 の 起 動 時 に emacs と vi の ど ち ら に 似 た キ ー 割 り 当 て を 使 う の か を 制 御 し ま す 。 editing-mode に は emacs と vi の い ず れ か を 指 定 で き ま す 。
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-history や next-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”)
イ ン ク リ メ ン タ ル 検 索 を 終 了 さ せ る 文 字 か ら な る 文 字 列 で す (終 了 後 に そ の 文 字 が コ マ ン ド と し て 実 行 さ れ る こ と も あ り ま せ ん )。 こ の 変 数 に 値 が 設 定 さ れ て い な け れ ば 、 ESC と C-J で イ ン ク リ メ ン タ ル 検 索 が 終 わ り ま す 。
keymap (emacs)
現 在 の readline の キ ー マ ッ プ を 設 定 し ま す 。 有 効 な キ ー マ ッ プ 名 は 、 emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-command , .IR vi-insert で す 。 vi は vi-command と 等 価 で 、 emacs は emacs-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-standard や emacs-ctlx キ ー マ ッ プ に 設 定 で き ま す 。 |
|||
|
term |
term= 形 式 を 使 う と 、 端 末 固 有 の キ ー 割 り 当 て を 入 れ る こ と が で き ま す 。 こ れ は 端 末 の フ ァ ン ク シ ョ ン キ ー が 出 力 す る キ ー シ ー ケ ン ス を 割 り 当 て る 場 合 な ど に 使 え ま す 。 = の 右 辺 の 単 語 の 評 価 は 、 端 末 の 完 全 な 名 前 お よ び 最 初 の - の 前 ま で の 部 分 的 な 名 前 の 両 方 に 対 し て 行 わ れ ま す 。 例 え ば 、 sun は sun と sun-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 ˆ
簡 易 置 換 。 string1 を string2 に 置 換 し て 直 前 の コ マ ン ド を 繰 り 返 し ま す 。 “!!:s/ string1 / string2 /” と 同 義 で す (後 述 の 修 飾 子 を 参 照 )。
|
!# |
こ れ ま で に 打 ち 込 ん だ コ マ ン ド ラ イ ン 全 体 。 |
単 語 指 示 子 (Word Designators)
単
語 指 示 子 (word designator)
は 、 イ ベ ン ト
か ら 所 望 の 欲
し い 単 語 を 選
ぶ と き に 用 い
ら れ ま す 。 イ
ベ ン ト 指 定 と
単 語 指 示 子 の
セ パ レ ー タ に
は
:
を 用 い ま
す 。 単 語 指 示
子 が
ˆ
,
$
,
*
,
-
,
%
の い ず れ
か で 始 ま る 場
合 に は 、 こ の
セ パ レ ー タ は
省 略 で き ま す
。 単 語 に は 行
の 先 頭 か ら 順
に 番 号 が 振 ら
れ 、 先 頭 の 単
語 が 0 に な り ま
す 。 単 語 は 現
在 の 行 に 、 空
白 1 つ で 区 切 ら
れ て 挿 入 さ れ
ま す 。
0 (ゼ ロ )
0 番 目 の 単 語 。 シ ェ ル に と っ て は 、 コ マ ン ド を 表 す 単 語 に な り ま す 。
|
n |
n 番 目 の 単 語 。 |
||
|
ˆ |
最 初 の 引 き 数 。 つ ま り 1 番 目 の 単 語 で す 。 |
||
|
$ |
最 後 の 引 き 数 。 |
||
|
% |
‘? string ?’ 検 索 に マ ッ チ す る 、 一 番 現 在 に 近 い 単 語 。 |
||
|
x - y |
単 語 の 範 囲 。 ‘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 /
イ ベ ン ト 行 で 最 初 に 現 わ れ た old を new に 置 き 換 え ま す 。 / の 代 わ り に 任 意 の 区 切 り 文 字 を 使 う こ と も で き ま す 。 最 後 の 区 切 り 文 字 が イ ベ ン ト 行 の 最 後 の 文 字 な ら ば 、 こ れ は 省 略 で き ま す 。 バ ッ ク ス ラ ッ シ ュ 1 つ で ク ォ ー ト す れ ば 、 old と new の 中 で 区 切 り 文 字 も 使 え ま す 。 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 に ス ラ ッ シ ュ が 含 ま れ て い な い 場 合 、 filename は PATH に 含 ま れ る デ ィ レ ク ト リ か ら 探 さ れ ま す 。 PATH 内 で 検 索 さ れ る フ ァ イ ル は 、 実 行 可 能 で あ る 必 要 は あ り ま せ ん 。 bash が posix モ ー ド 以 外 で 動 作 し て い る と き は 、 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 で す 。 vi は vi-command と 同 じ で す 。 ま た emacs は emacs-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_LINE や READLINE_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
wordlist は IFS 特 殊 変 数 に 含 ま れ る 文 字 を 区 切 り 文 字 と し て 分 割 さ れ 、 分 割 さ れ た 単 語 が そ れ ぞ れ 展 開 さ れ ま す 。 展 開 結 果 の リ ス ト の メ ン バ の う ち 、 補 完 中 の 単 語 が マ ッ チ す る も の が 、 補 完 候 補 と な り ま す 。
-X filterpat
filterpat が パ ス 名 展 開 の パ タ ー ン と し て 使 用 さ れ ま す 。 先 行 す る オ プ シ ョ ン ・ 引 き 数 に よ っ て 生 成 さ れ た 補 完 候 補 の リ ス ト に 適 用 さ れ 、 filterpat と マ ッ チ す る そ れ ぞ れ の 補 完 候 補 が リ ス ト か ら 削 除 さ れ ま す 。 filterpat が ! で 始 ま る 場 合 、 パ タ ー ン の 否 定 の 意 味 に な り ま す 。 つ ま り 、 filterpat に マ ッ チ し な い 補 完 対 象 が 削 除 さ れ ま す 。
不 正 な オ プ シ ョ ン が 指 定 さ れ た 場 合 、 -p と -r 以 外 の オ プ シ ョ ン で name が 指 定 さ れ な か っ た 場 合 、 存 在 し な い name の 指 定 に よ っ て 補 完 が 削 除 さ れ よ う と し た 場 合 、 補 完 の 指 定 の 追 加 に 失 敗 し た 場 合 、 を 除 い て は 、 返 り 値 は 真 に な り ま す 。
compopt [ -o option ] [ -DE ] [ +o option ] [ name ]
name の 補 完 オ プ シ ョ ン を option に 従 っ て 変 更 し ま す 。 name が 指 定 さ れ な い 場 合 は 、 実 行 中 の 補 完 が 対 象 に な り ま す 。 option s が 与 え ら れ な い 場 合 は 、 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 の 属 性 と 値 が 表 示 さ れ ま す 。 -p に name 引 き 数 を 指 定 す る と 、 他 の オ プ シ ョ ン は 無 視 さ れ ま す 。 -p オ プ シ ョ ン が name 引 き 数 な し で 指 定 さ れ る と 、 他 の オ プ シ ョ ン で 指 定 さ れ た 属 性 を 持 っ て い る 全 て の 変 数 の 属 性 と 値 を 表 示 し ま す 。 -p 以 外 の オ プ シ ョ ン が 指 定 さ れ な い 場 合 、 declare は 全 て の シ ェ ル 変 数 の 属 性 と 値 を 表 示 し ま す 。 -f オ プ シ ョ ン は 表 示 を シ ェ ル 関 数 に 限 定 し ま す 。 -F オ プ シ ョ ン を 指 定 す る と 、 関 数 定 義 の 表 示 を 止 め ま す 。 関 数 の 名 前 と 属 性 だ け が 出 力 さ れ ま す 。 shopt に よ っ て シ ェ ル オ プ シ ョ ン extdebug が 有 効 に な っ て い れ ば 、 関 数 が 定 義 さ れ て い る ソ ー ス フ ァ イ ル の 名 前 と 行 番 号 も 表 示 さ れ ま す 。 -F オ プ シ ョ ン を 指 定 す る と 、 -f オ プ シ ョ ン も 指 定 し た こ と に な り ま す 。 -g オ プ シ ョ ン を 指 定 す る と 、 declare が シ ェ ル 関 数 の 中 で 実 行 さ れ た と き で あ っ て も 、 グ ロ ー バ ル ス コ ー プ で 変 数 の 作 成 、 変 更 を 行 い ま す 。 ほ か の 場 合 に は 無 視 さ れ ま す 。 以 下 の オ プ シ ョ ン を 使 う と 、 指 定 し た 属 性 を 持 つ 変 数 の 出 力 を 限 定 し た り 、 変 数 に 属 性 を 与 え た り で き ま す :
|
-a |
各 name は 配 列 変 数 で す (前 述 の 配 列 を 参 照 )。 |
||
|
-A |
各 name は 連 想 配 列 変 数 で す (前 述 の 配 列 を 参 照 )。 |
||
|
-f |
関 数 名 だ け を 使 い ま す 。 |
||
|
-i |
変 数 を 整 数 と し て 扱 い ま す 。 変 数 に 値 が 代 入 さ れ た と き に 算 術 式 評 価 ( 算 術 式 評 価 を 参 照 ) が 実 行 さ れ ま す 。 |
||
|
-l |
変 数 に 値 が 代 入 さ れ る と 、 全 て の 大 文 字 は 小 文 字 に 変 換 さ れ ま す 。 大 文 字 属 性 は 無 効 に な り ま す 。 |
||
|
-r |
name を 読 み 込 み 専 用 に し ま す 。 こ れ 以 降 、 代 入 文 を 用 い て 値 を 代 入 し た り unset し た り で き な く な り ま す 。 |
||
|
-t |
各 name に trace 属 性 を 与 え ま す 。 trace 属 性 を 付 与 さ れ た 関 数 は DEBUG と RETURN の ト ラ ッ プ を 呼 び 出 し た シ ェ ル か ら 受 け 継 ぎ ま す 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 |
垂 直 タ ブ |
||
|
\\ |
バ ッ ク ス ラ ッ シ ュ |
||
|
\0 nnn |
8 進 値 で nnn で あ る 8 ビ ッ ト 文 字 (8 進 数 で 0〜 3 桁 )。 |
||
|
\x HH |
16 進 値 が HH で あ る 8 ビ ッ ト 文 字 (16 進 で 1〜 2 桁 )。 |
||
|
\u HHHH |
16 進 値 が HHHH で あ る ユ ニ コ ー ド (ISO/IEC 10646) 文 字 (16 進 1〜 4 桁 )。 |
\U HHHHHHHH
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 が 指 定 さ れ て い る と 、 シ ェ ル は こ の コ マ ン ド に 置 き 換 え ら れ ま す 。 新 し い プ ロ セ ス は 生 成 さ れ ま せ ん 。 arguments は command に 対 す る 引 き 数 と な り ま す 。 -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 ま で の 範 囲 の コ マ ン ド が 履 歴 リ ス ト か ら 選 択 さ れ ま す 。 first と last に は 文 字 列 か 数 値 を 指 定 し ま す 。 文 字 列 は そ の 文 字 列 で 始 ま る 最 後 の コ マ ン ド を 表 し 、 数 値 は 履 歴 リ ス ト 中 で の イ ン デ ッ ク ス を 表 し ま す (負 の 値 は 現 在 の コ マ ン ド 番 号 か ら の オ フ セ ッ ト と し て 扱 わ れ ま す )。 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 が 指 定 さ れ た 場 合 に は 、 help は pattern に マ ッ チ す る 全 て の コ マ ン ド に 関 す る 詳 し い ヘ ル プ を 出 力 し ま す 。 指 定 さ れ な か っ た 場 合 に は 、 全 て の 組 み 込 み コ マ ン ド と 制 御 構 造 に つ い て の 説 明 が 出 力 さ れ ま す 。
|
-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 オ プ シ ョ ン が 指 定 さ れ る と 、 jobs は command や args 中 の jobspec を 対 応 す る プ ロ セ ス の グ ル ー プ ID で 置 き 換 え 、 command に args を 与 え て 実 行 し 、 そ の 終 了 ス テ ー タ ス を 返 し ま す 。
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
printf は datefmt を strftime (3) の 書 式 文 字 列 と し て 使 っ て 日 付 と 時 刻 の 文 字 列 を 出 力 し ま す 。 対 応 す る argument は 、 紀 元 (1970年 1 月 1 日 00:00:00 UTC) か ら の 秒 数 を 表 す 整 数 値 で す 。 argument に は 2 つ の 特 別 な 値 が 使 え ま す 。 -1 は 現 在 時 刻 を 表 し ま す 。 -2 は シ ェ ル が 起 動 し た 時 刻 を 表 し ま す 。
文 字 列 で な い フ ォ ー マ ッ ト 指 定 に 対 す る 引 き 数 は 、 C の 定 数 と し て 扱 わ れ ま す 。 た だ し 、 先 頭 の プ ラ ス と マ イ ナ ス の 記 号 は 許 さ れ ま す 。 ま た 、 先 頭 の 文 字 が シ ン グ ル ク ォ ー ト や ダ ブ ル ク ォ ー ト で あ れ ば 、 続 く 文 字 の ASCII コ ー ド の 値 が 引 き 数 の 値 と な り ま す 。
format は 必 要 に 応 じ て 再 利 用 さ れ 、 全 て の arguments を 処 理 し ま す 。 与 え ら れ た よ り も 多 く の arguments を format が 必 要 と す る 場 合 、 余 分 の フ ォ ー マ ッ ト 指 定 は 、 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 |
設 定 さ れ て い る 場 合 、 DEBUG と RETURN の ト ラ ッ プ は 、 シ ェ ル 関 数 、 コ マ ン ド 置 換 、 サ ブ シ ェ ル 環 境 で 実 行 さ れ る コ マ ン ド に 継 承 さ れ ま す 。 通 常 、 こ の よ う な 場 面 で は DEBUG と RETURN の ト ラ ッ プ は 継 承 さ れ ま せ ん 。 |
||
|
-- |
こ の オ プ シ ョ ン の 後 に 引 き 数 が 続 い て い な い 場 合 に は 、 位 置 パ ラ メ ー タ の 設 定 が 取 り 消 さ れ ま す 。 引 き 数 が 続 い て い る 場 合 に は 、 位 置 パ ラ メ ー タ に 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 ) で 起 動 さ れ た サ ブ シ ェ ル は 、 DEBUG と RETURN の ト ラ ッ プ を 継 承 し ま す 。 |
||
|
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 の 値 を 返 し ま す 。 こ れ を 使 う と 、 通 常 の 演 算 子 の 優 先 度 を 変 更 で き ま す 。
expr1 - a expr2
expr1 と expr2 が 両 方 と も 真 な ら ば 真 に な り ま す 。
expr1 - o expr2
expr1 と expr2 の い ず れ か が 真 な ら ば 真 に な り ま す 。
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 は 省 略 可 能 で す 。
sigspec が EXIT (0) で あ れ ば 、 シ ェ ル の 終 了 時 に コ マ ン ド arg が 実 行 さ れ ま す 。 sigspec が DEBUG で あ れ ば 、 各 々 の 単 純 な コ マ ン ド 、 for コ マ ン ド 、 case コ マ ン ド 、 select コ マ ン ド 、 各 々 の 算 術 for コ マ ン ド の 前 、 お よ び シ ェ ル 関 数 の 最 初 の コ マ ン ド の 実 行 前 (前 述 の シ ェ ル の 文 法 セ ク シ ョ ン を 参 照 ) に 、 コ マ ン ド arg が 実 行 さ れ ま す 。 DEBUG の ト ラ ッ プ の 影 響 に つ い て の 詳 細 は 組 み 込 み コ マ ン ド shopt の extdebug オ プ シ ョ ン の 説 明 を 参 照 し て く だ さ い 。 sigspec が RETURN で あ れ ば 、 シ ェ ル 関 数 の 実 行 、 ま た は 組 み 込 み コ マ ン ド の . や source で 実 行 さ れ た ス ク リ プ ト の 実 行 が 終 わ る た び に コ マ ン ド arg が 実 行 さ れ ま す 。
sigspec が ERR で あ れ ば 、 単 純 な コ マ ン ド が 0 以 外 の 終 了 ス テ ー タ ス の と き に コ マ ン ド arg が 実 行 さ れ ま す 。 た だ し 、 失 敗 し た コ マ ン ド が 、 while ま た は until キ ー ワ ー ド 直 後 の コ マ ン ド リ ス ト に 含 ま れ る 場 合 、 if 文 の 条 件 に 含 ま れ る 場 合 、 && や || の リ ス ト 中 で 実 行 す る コ マ ン ド に 含 ま れ る 場 合 、 お よ び 、 コ マ ン ド の 戻 り 値 が ! で 反 転 さ れ て い る 場 合 に は 、 ERR の ト ラ ッ プ は 実 行 さ れ ま せ ん 。 こ れ ら は errexit オ プ シ ョ ン が 従 う 条 件 と 同 じ で す 。
シ ェ ル に 入 る 際 に 無 視 さ れ る シ グ ナ ル は 、 ト ラ ッ プ も リ セ ッ ト も で き ま せ ん 。 無 視 さ れ な か っ た シ グ ナ ル の ト ラ ッ プ は 、 サ ブ シ ェ ル や サ ブ シ ェ ル 環 境 で は 作 ら れ た と き に 元 の 値 に リ セ ッ ト さ れ ま す 。 sigspec の い ず れ か が 不 正 で あ れ ば 、 返 却 ス テ ー タ ス は 偽 に な り ま す 。 そ れ 以 外 の 場 合 に は 、 trap は 真 を 返 し ま す 。
type [ -aftpP ] name [ name ...]
オ プ シ ョ ン な し の 場 合 に は 、 各 name を コ マ ン ド 名 と し て 使 っ た と き に 、 そ れ が ど の よ う に 解 釈 さ れ る か を 示 し ま す 。 -t オ プ シ ョ ン を 使 う と 、 name が エ イ リ ア ス 、 シ ェ ル の 予 約 語 、 関 数 、 組 み 込 み コ マ ン ド 、 デ ィ ス ク 上 の フ ァ イ ル の い ず れ か の 場 合 、 type は そ れ ぞ れ alias , keyword , function , builtin , file と い う 文 字 列 を 出 力 し ま す 。 name が 見 つ か ら な い 場 合 は 何 も 出 力 さ れ ず 、 偽 の 終 了 ス テ ー タ ス が 返 さ れ ま す 。 -p オ プ シ ョ ン を 使 う と 、 type は name を コ マ ン ド 名 と し て 指 定 し た 場 合 に 実 行 さ れ る デ ィ ス ク フ ァ イ ル の 名 前 を 返 し ま す 。 た だ し 、 ‘‘type -t name’’ が file を 返 さ な い 場 合 は 、 何 も 返 し ま せ ん 。 -P オ プ シ ョ ン を 使 う と 、 ‘‘type -t name’’ が file を 返 さ な い 場 合 で も name を PATH か ら 探 し ま す 。 コ マ ン ド が ハ ッ シ ュ さ れ て い る 場 合 、 -p や -P は ハ ッ シ ュ さ れ て い る 値 を 表 示 し ま す 。 こ の 場 合 、 表 示 さ れ る の は 、 必 ず し も PATH 中 で 最 初 に 現 わ れ る フ ァ イ ル と は 限 り ま せ ん 。 -a オ プ シ ョ ン を 使 う と 、 type は name と い う 名 前 の 実 行 フ ァ イ ル が あ る 場 所 を 全 て 出 力 し ま す 。 -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)
bash を rbash と い う 名 前 で 起 動 し た 場 合 や 、 起 動 時 に -r オ プ シ ョ ン を 指 定 し た 場 合 に は 、 シ ェ ル は 制 限 さ れ た 状 態 に な り ま す 。 制 限 付 き の シ ェ ル は 、 標 準 の シ ェ ル よ り も 細 か く 制 御 さ れ た 環 境 を 用 意 し た い と き に 使 わ れ ま す 。 制 限 付 き の シ ェ ル は bash と 全 く 同 じ よ う に 動 作 し ま す が 、 以 下 の よ う な こ と が 許 可 さ れ な か っ た り 実 行 さ れ な か っ た り し ま す 。
|
• |
cd を 使 っ て デ ィ レ ク ト リ を 変 更 す る こ と |
||
|
• |
SHELL , PATH , ENV , BASH_ENV の 値 の 設 定 や 設 定 取 り 消 し を 行 う こ と |
||
|
• |
/ を 含 む コ マ ン ド 名 を 指 定 す る こ と |
||
|
• |
組 み 込 み コ マ ン ド . の 引 き 数 と し て / を 含 む フ ァ イ ル 名 を 指 定 す る こ と |
||
|
• |
組 み 込 み コ マ ン ド hash の オ プ シ ョ ン -p の 引 き 数 と し て / を 含 む フ ァ イ ル 名 を 指 定 す る こ と |
||
|
• |
起 動 時 に シ ェ ル 環 境 か ら 関 数 定 義 を イ ン ポ ー ト す る こ と |
||
|
• |
起 動 時 に シ ェ ル 環 境 か ら SHELLOPTS の 値 を 解 釈 す る こ と |
||
|
• |
リ ダ イ レ ク シ ョ ン 演 算 子 >, >|, <>, >&, &>, >> を 使 っ て リ ダ イ レ ク ト を 行 な う こ と |
||
|
• |
組 み 込 み コ マ ン ド exec を 用 い て 、 シ ェ ル を 別 の コ マ ン ド に 置 き 換 え る こ と |
||
|
• |
組 み 込 み コ マ ン ド enable の -f オ プ シ ョ ン と -d オ プ シ ョ ン を 使 っ て 、 組 み 込 み コ マ ン ド を 追 加 ・ 削 除 す る こ と |
||
|
• |
組 み 込 み コ マ ン ド enable を 使 っ て 、 無 効 に な っ て い る 組 み 込 み コ マ ン ド を 有 効 に す る こ と |
||
|
• |
組 み 込 み コ マ ン ド command に -p オ プ シ ョ ン を 指 定 す る こ と |
||
|
• |
set +r や set +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@gnu.org
Chet Ramey, Case
Western Reserve University
chet.ramey@case.edu
バ グ 報 告
bash の バ グ を 見 つ け た ら 必 ず 報 告 し て く だ さ い 。 た だ し 報 告 の 前 に は 、 そ れ が 本 当 に バ グ で あ る こ と と 、 バ グ が 最 新 版 の bash で 起 こ る こ と を 確 か め て く だ さ い 。 最 新 版 は ftp://ftp.gnu.org/pub/gnu/bash/ か ら 入 手 で き ま す 。
本 当 に バ グ が あ る と 判 断 し た 場 合 に は 、 bashbug コ マ ン ド を 使 っ て バ グ 報 告 を 行 い ま す 。 バ グ を 修 正 し て く だ さ っ た 場 合 に は 、 ぜ ひ そ の 内 容 も 一 緒 に メ ー ル し て く だ さ い ! 提 案 や 「 哲 学 上 の 」 バ グ 報 告 は 、 bug-bash@gnu.org に メ ー ル し た り 、 ニ ュ ー ス グ ル ー プ の gnu.bash.bug に 投 稿 し た り し て く だ さ っ て も か ま い ま せ ん 。
バ グ 報 告 に は 必 ず 以 下 の こ と を 書 い て く だ さ い :
|
bash の バ ー ジ ョ ン |
ハ
ー ド ウ ェ ア と
オ ペ レ ー テ ィ
ン グ シ ス テ ム
コ ン パ イ ル に
使 っ た コ ン パ
イ ラ
|
バ グ 動 作 の 説 明 |
バ グ を 再 現 で き る 「 レ シ ピ 」 (簡 単 な シ ェ ル ス ク リ プ ト )
bashbug コ マ ン ド は 、 バ グ 報 告 を 送 る た め に 用 意 さ れ て い る テ ン プ レ ー ト に 、 最 初 の 3 項 目 を 自 動 的 に 書 き 込 み ま す 。
こ の オ ン ラ イ ン マ ニ ュ ア ル に 関 す る コ メ ン ト や バ グ 報 告 は chet.ramey@case.edu 宛 に お 願 い し ま す 。
バ グ
bash は 大 き す ぎ る し 、 遅 す ぎ ま す 。
bash と 昔 な が ら の バ ー ジ ョ ン の sh に は ち ょ っ と し た 違 い が い く つ か あ り ま す 。 こ の 大 部 分 は POSIX の 仕 様 の せ い で 生 じ た も の で す 。
使 い 方 に よ っ て は 、 エ イ リ ア ス は 混 乱 の 元 に な り ま す 。
シ ェ ル 組 み 込 み コ マ ン ド と シ ェ ル 関 数 は 、 停 止 し た り 、 実 行 を 再 開 し た り で き ま せ ん 。
複 合 コ マ ン ド や ‘a ; b ; c’ の 形 式 の コ マ ン ド 列 は 、 プ ロ セ ス の サ ス ペ ン ド を 行 う 際 に 綺 麗 に 扱 う こ と が で き ま せ ん 。 あ る プ ロ セ ス を 停 止 す る と 、 シ ェ ル は コ マ ン ド 列 の 次 の コ マ ン ド を 即 座 に 実 行 す る か ら で す 。 こ の 問 題 は コ マ ン ド 列 を 括 弧 の 中 に 置 い て サ ブ シ ェ ル に 実 行 さ せ る こ と で 解 決 で き ま す 。 こ う す れ ば 、 ひ と ま と ま り の も の と し て 停 止 で き ま す 。
配 列 変 数 は (ま だ ) エ ク ス ポ ー ト で き ま せ ん 。
一 度 に 1 つ の コ プ ロ セ ス し か ア ク テ ィ ブ に で き ま せ ん 。