Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 0d244cef41502353818b7ddf77fcf901 > files > 40

yash-doc-2.28-1.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="author" content="magicant">
<meta name="description" content="Yash の set 組込みコマンドについて">
<title>Yash マニュアル: set 組込みコマンド</title>
<link rel="Contents" href="../index.html" title="目次">
<link rel="Prev" href="return.html" title="Return 組込みコマンド">
<link rel="Next" href="shift.html" title="Shift 組込みコマンド">
<link rel="Stylesheet" href="../style.css">

<div class="breadcrumb"><a href="../index.html">目次</a> >
<a rel="Up" href="index.html">組込みコマンド一覧</a></div>
<h1>Set 組込みコマンド</h1>

<p><dfn>Set 組込みコマンド</dfn>はシェルのオプションの設定と<a href="../params.html#positional">位置パラメータ</a>の変更を行います。

<h2 id="syntax">構文</h2>
<ul>
<li><code>set [<var>オプション</var>] [<var>オペランド</var>]</code>
<li><code>set -o</code>
<li><code>set +o</code>
</ul>

<h2 id="description">説明</h2>
<p>コマンドライン引数を一切与えずに set コマンドを実行すると、現在シェルに設定されている全ての<a href="../params.html#variables">変数</a>の一覧をアルファベット順で (コマンドとして解釈可能な形式で) 標準出力に出力します。<code>-o</code> を唯一のコマンドライン引数として与えた場合は現在のシェルのオプション設定を一覧にして標準出力に出力します。<code>+o</code> を唯一のコマンドライン引数として与えた場合も同様ですが、この場合はコマンドとして解釈可能な形式で出力します。これ以外の場合は、set コマンドは以下のようにシェルのオプションの設定と位置パラメータの変更のどちらかまたは両方の動作を行います。

<h2 id="options">オプション</h2>
<p>オプションが一つ以上与えられている場合、set コマンドはそれらの有効・無効を切り替えます。通常の形式でオプションを与えると、そのオプションは有効になります。オプションの先頭のハイフン (<code>-</code>) の代わりにプラス (<code>+</code>) を付けて指定すると、そのオプションは無効になります。例えば <code>-m</code> や <code>-o monitor</code> や <code>--monitor</code> はシェルのジョブ制御を有効にし、逆に <code>+m</code> や <code>+o monitor</code> や <code>++monitor</code> はジョブ制御を無効にします。
<p><a href="../builtin.html#argsyntax">長いオプション</a>の名前に含まれる英数字以外の文字は無視されます。例えば <code>--le-comp-debug</code> は <code>--lecompdebug</code> に同じです。また長いオプションの名前の先頭に <code>no</code> を付けることで、オプションの有効・無効を逆転することができます。例えば <code>--noallexport</code> は <code>++allexport</code> に同じく、また <code>++nonotify</code> は <code>--notify</code> に同じです。
<p>以下にオプションの一覧を示します。オプションは、<code>--allexport</code> のように長いオプションとして指定するか、<code>-o allexport</code> のように<a href="../builtin.html#argsyntax">一文字のオプション</a> <code>o</code> の引数として指定することができます (このときオプションの名前に大文字・小文字の区別はありません)。また一部のオプションは <code>-a</code> のように対応する一文字のオプションで直接指定できます。
<dl>
<dt>Allexport
<dd>このオプションが有効な時、<a href="../params.html#variables">変数</a>に代入をするとその変数は自動的にエクスポート対象になります。
<dd><code>-a</code> は <code>--allexport</code> と同じです。
<dt>Braceexpand
<dd>このオプションは<a href="../expand.html#brace">ブレース展開</a>を有効にします。
<dt>Caseglob
<dd>このオプションが有効な時、<a href="../expand.html#glob">パス名展開</a>におけるパターンマッチングは大文字と小文字を区別して行います。このオプションはシェルの起動時に最初から有効になっています。
<dt>Clobber
<dd>このオプションを無効にすると、> 演算子による<a href="../redir.html">リダイレクト</a>で既存のファイルを上書きすることはできなくなります。このオプションはシェルの起動時に最初から有効になっています。
<dd><code>-C</code> は <code>--noclobber</code> と同じです。
<dt>Curasync
<dt>Curbg
<dt>Curstop
<dd>これらのオプションは現在のジョブの選択の仕方に影響します。(<a href="../job.html#jobid">ジョブ ID</a> 参照)。これらのオプションはシェルの起動時に最初から有効になっています。
<dt>Dotglob
<dd>このオプションが有効な時、<a href="../expand.html#glob">パス名展開</a>においてファイル名の先頭のピリオドを特別に扱いません。
<dt>Emacs
<dd>このオプションは emacs 風行編集を有効にします。
<dt>Errexit
<dd>このオプションが有効な時、実行した<a href="../syntax.html#simple">単純コマンド</a> (または<a href="../syntax.html#pipelines">パイプライン</a>) の終了ステータスが 0 でなければ、シェルは直ちに終了します。ただし、そのコマンドが <a href="../syntax.html#while-until">while/until 文</a>のループ条件の判定に使われる場合や <a href="../syntax.html#if">if 文</a>の分岐の判定に使われる場合やパイプラインの先頭に <code>!</code> が付いている場合を除きます。
<dd><code>-e</code> は <code>--errexit</code> と同じです。
<dt>Exec
<dd>このオプションが無効な時、シェルはコマンドの解釈だけを行い、実際にはコマンドを実行しません。このオプションはシェルスクリプトの文法チェックをするのに便利です。このオプションはシェルの起動時に最初から有効になっています。<a href="../interact.html">対話モード</a>では、このオプションに関わらずコマンドは常に実行されます。
<dd><code>-n</code> は <code>--noexec</code> と同じです。
<dt>Extendedglob
<dd>このオプションは<a href="../expand.html#glob">パス名展開</a>における拡張機能を有効にします。
<dt>Glob
<dd>このオプションが有効なときはシェルは<a href="../expand.html#glob">パス名展開</a>を行います。このオプションはシェルの起動時に最初から有効になっています。
<dd><code>-f</code> は <code>--noglob</code> と同じです。
<dt>Hashondef
<dd>このオプションが有効なとき<a href="../exec.html#function">関数</a>を定義するとその関数内で使われる各コマンドの PATH 検索を行います。
<dd><code>-h</code> は <code>--hashondef</code> と同じです。
<dt>Histspace
<dd>このオプションが有効な時は空白で始まる行は<a href="../interact.html#history">コマンド履歴</a>に自動的に追加しません。
<dt>Ignoreeof
<dd>このオプションが有効な時、<a href="../interact.html">対話モード</a>のシェルに EOF (入力の終わり) が入力されてもシェルはそれを無視してコマンドの読み込みを続けます。これにより、誤って Ctrl-D を押してしまってもシェルは終了しなくなります。
<dt>Lealwaysrp
<dt>Lecompdebug
<dt>Leconvmeta
<dt>Lenoconvmeta
<dt>Lepromptsp
<dt>Levisiblebell
<dd>これらのオプションは<a href="../lineedit.html">行編集</a>の動作に影響します。<a href="../lineedit.html#options">行編集のオプション</a>を参照してください。
<dt>Markdirs
<dd>このオプションが有効な時、<a href="../expand.html#glob">パス名展開</a>の展開結果においてディレクトリを表すものの末尾にスラッシュを付けます。
<dt>Monitor
<dd>このオプションは<a href="../job.html">ジョブ制御</a>を有効にします。シェルを<a href="../interact.html">対話モード</a>で起動したときこのオプションは自動的に有効になります。
<dd><code>-m</code> は <code>--monitor</code> と同じです。
<dt>Notify
<dd>このオプションが有効な時は、バックグラウンドの<a href="../job.html">ジョブ</a>の実行状態が変化するとシェルは直ちにそれを標準エラーに報告します。このオプションは notifyle オプションより優先します。
<dd><code>-b</code> は <code>--notify</code> と同じです。
<dt>Notifyle
<dd>このオプションは notify オプションとほぼ同じですが、<a href="../lineedit.html">行編集</a>を行っている最中のみジョブの状態変化を報告します。
<dt>Nullglob
<dd>このオプションが有効な時、<a href="../expand.html#glob">パス名展開</a>でマッチするパス名がないとき元のパターンは残りません。
<dt>Posixlycorrect
<dd>このオプションは <a href="../posix.html">POSIX 準拠モード</a>を有効にします。
<dt>Unset
<dd>このオプションが有効な時、<a href="../expand.html#params">パラメータ展開</a>で存在しない変数を展開するとエラーにはならず空文字列に展開されます。このオプションはシェルの起動時に最初から有効になっています。
<dd><code>-u</code> は <code>--nounset</code> と同じです。
<dt>Verbose
<dd>このオプションが有効な時、シェルは読み込んだコマンドをそのまま標準エラーに出力します。
<dd><code>-v</code> は <code>--verbose</code> と同じです。
<dt>Vi
<dd>このオプションは vi 風行編集を有効にします。<a href="../interact.html">対話モード</a>が有効で標準入力と標準エラーがともに端末ならばこのオプションはシェルの起動時に自動的に有効になります。
<dt>Xtrace
<dd>このオプションが有効な時、コマンドを実行する前に<a href="../expand.html">展開</a>の結果を標準エラーに出力します。この出力は、各行頭に <a href="../params.html#sv-ps4"><code>PS4</code> 変数</a>の値を<a href="../expand.html">展開</a>した結果を付けて示されます。
<dd><code>-x</code> は <code>--xtrace</code> と同じです。
</dl>
<p>Set コマンドでは、<a href="../posix.html">POSIX 準拠モード</a>であるかどうかにかかわらずオプションはオペランドより先に全て指定しなければなりません。最初のオペランドより後にあるコマンドライン引数は全てオペランドとして解釈します。

<h2 id="operands">オペランド</h2>
<p>Set コマンドにオペランドが与えられている場合またはオプションとオペランドを区切るハイフン二つ (<code>--</code>, <a href="../builtin.html#argsyntax">コマンドの引数の構文</a>参照) がコマンドライン引数に入っている場合は、現在の<a href="../params.html#positional">位置パラメータ</a>は削除され、与えられたオペランドがそれぞれ新しく位置パラメータになります。ハイフン二つが与えられていてかつオペランドがない場合は位置パラメータはなくなります。

<h2 id="exitstatus">終了ステータス</h2>
<p>オプションの指定が間違っている場合を除き、set コマンドの終了ステータスは 0 です。

<h2 id="notes">補足</h2>
<p>Set コマンドは<a href="../builtin.html#types">特殊組込みコマンド</a>です。
<p>ここに挙げたオプションのうち POSIX に規定されているのは以下のものだけです。POSIX では、<code>--allexport</code> のような長いオプションによる指定および <code>no</code> の有無による有効・無効の逆転について規定しておらず、オプション名はすべて小文字です。
<ul>
<li><code>-a</code>, <code>-o allexport</code>
<li><code>-e</code>, <code>-o errexit</code>
<li><code>-m</code>, <code>-o monitor</code>
<li><code>-C</code>, <code>-o noclobber</code>
<li><code>-n</code>, <code>-o noexec</code>
<li><code>-f</code>, <code>-o noglob</code>
<li><code>-b</code>, <code>-o notify</code>
<li><code>-u</code>, <code>-o nounset</code>
<li><code>-v</code>, <code>-o verbose</code>
<li><code>-x</code>, <code>-o xtrace</code>
<li><code>-h</code>
<li><code>-o ignoreeof</code>
<li><code>-o vi</code>
</ul>
<p>POSIX ではこのほかに、<a href="../syntax.html#funcdef">関数定義</a>を<a href="../interact.html#history">コマンド履歴</a>に登録しないようにする <code>-o nolog</code> オプションを規定していますが、yash はこれをサポートしていません。