components/ksh93/files/sh.1.ja_JP.UTF-8
changeset 789 5f074ca23733
equal deleted inserted replaced
788:ab1a623335b6 789:5f074ca23733
       
     1 '\" te
       
     2 .\" Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
       
     3 .\" Copyright 1989 AT&T
       
     4 .\" Portions Copyright (c) 1992, X/Open Company Limited All Rights Reserved
       
     5 .\"  Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at http://www.opengroup.org/bookstore/.
       
     6 .\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation. In the following statement, the phrase "this text" refers to portions of the system documentation. Portions of this text are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between these versions and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html. This notice shall appear on any product containing this material. 
       
     7 .TH sh 1 "2011 年 7 月 12 日" "SunOS 5.11" "ユーザーコマンド"
       
     8 .SH 名前
       
     9 sh, jsh \- 標準シェルとジョブ制御シェルおよびコマンドインタプリタ
       
    10 .SH 形式
       
    11 .LP
       
    12 .nf
       
    13 \fB/usr/bin/sh\fR  [\fB-acefhiknprstuvx\fR] [\fIargument\fR]...
       
    14 .fi
       
    15 
       
    16 .LP
       
    17 .nf
       
    18 \fB/usr/xpg4/bin/sh\fR  [\(+- abCefhikmnoprstuvx]
       
    19      [\(+- o \fIoption\fR]... [\fB-c\fR \fIstring\fR] [\fIarg\fR]...
       
    20 .fi
       
    21 
       
    22 .LP
       
    23 .nf
       
    24 \fB/usr/bin/jsh\fR  [\fB-acefhiknprstuvx\fR] [\fIargument\fR]...
       
    25 .fi
       
    26 
       
    27 .SH 機能説明
       
    28 .sp
       
    29 .LP
       
    30 \fB/usr/bin/sh\fR ユーティリティは、端末またはファイルから読み取られたコマンドを 実行するコマンドおよびプログラミング言語です。
       
    31 .sp
       
    32 .LP
       
    33 \fB/usr/xpg4/bin/sh\fR ユーティリティーは標準に準拠したシェルです。このユーティリティーは \fBksh88\fR(1) のすべての機能を提供します。ただし、\fBksh\fR(1) で説明しているように、動作が異なる場合を除きます。
       
    34 .sp
       
    35 .LP
       
    36 \fBjsh\fR ユーティリティーは、\fBsh\fR のすべての機能を備えた、かつジョブ制御を可能にするシェルへのインタフェースです (下記の「ジョブ制御」を参照)。\fB\fR
       
    37 .sp
       
    38 .LP
       
    39 シェルへの引数については、後述の「呼び出し」にリストされています。\fB\fR
       
    40 .SS "定義"
       
    41 .sp
       
    42 .LP
       
    43 ブランク (\fIblank\fR) はタブ (tab) またはスペース (space) です。名前 (\fIname\fR) は \fBASCII\fR 英文字、数字、または下線の並びで、先頭文字は英文字または下線です。パラメータ ( \fIparameter\fR) は、名前、複数、または \fB*\fR、\fB@\fR、\fB#\fR、\fB?\fR、\fB-\fR、\fB$\fR、\fB!\fR などの文字のいずれかです。
       
    44 .SH 使用法
       
    45 .SS "コマンド (Commands)"
       
    46 .sp
       
    47 .LP
       
    48 単純コマンド (\fIsimple-command\fR) は、ブランクで区切られた、ブランクでないワードの並びです。先頭のワードは、実行するコマンド名を指定します。\fI\fR\fI\fR\fI\fR残りのワードは、次に述べる場合を除き、呼び出されたコマンドに引数として渡されます。\fI\fRコマンド名は引数 0 として渡されます (\fBexec\fR(2) を参照)。単純コマンドの値 (\fIvalue\fR) は、正常終了した場合は終了ステータス、異常終了した場合は \fB200\fR+\fIstatus\fR (8 進数) です。\fI\fRステータス値の一覧表については、\fBsignal.h\fR(3HEAD) を参照してください。
       
    49 .sp
       
    50 .LP
       
    51 パイプライン (\fIpipeline\fR) は、パイプ (\fB|\fR) で区切られた 1 つ以上のコマンドの並びです。\fI\fR最後のコマンドを除き、各コマンドの標準出力は \fBpipe\fR(2) によってその次のコマンドの標準入力と結合されます。\fI\fR\fI\fR各コマンドは、別々のプロセスとして実行されます。\fI\fRシェルは最後のコマンドが終了するのを待ちます。\fI\fR最後のコマンドの終了ステータスがパイプライン全体の終了ステータスとなります。\fI\fR\fI\fR
       
    52 .sp
       
    53 .LP
       
    54 リスト (\fIlist\fR) は、\fB;\fR、\fB&\fR、\fB&&\fR、または \fB|\||\fR で区切られた 1 つ以上のパイプラインの並びです。その並びの終わりに \fB;\fR または \fB&\fR を記述することもできます。\fI\fRこれら 4 つの記号の中で、\fB;\fR と \fB&\fR の優先度は同じで、\fB&&\fR と \fB|\||\fR の優先度より低くなります。\fB&&\fR と \fB|\||\fR の優先度は同じです。セミコロン (\fB;\fR) によって、直前のパイプラインが順次実行されます。つまりシェルはパイプラインが終了するのを待ってから、セミコロンの後のコマンドを実行します。\fI\fR\fI\fRアンパサンド記号 (\fB&\fR) によって、直前のパイプラインが非同期的に実行されます。つまりシェルはパイプラインが終了するのを待ちません。\fB\fR\fB&&\fR という記号は、直前のパイプラインの終了ステータスが 0 の場合にだけ、後続のリストを実行するものです。反対に (\|\fB|\||\fR) は、終了ステータスが 0 以外の場合にだけ、後続のリストを実行します。\fI\fRコマンドの区切りとして、セミコロンの代わりに任意の数の復帰改行を \fIlist\fR に指定できます。
       
    55 .sp
       
    56 .LP
       
    57 コマンド (\fIcommand\fR) は、単純コマンドまたは次のいずれかです。\fI\fR特に断わりのないかぎり、コマンドが返す値は、そのコマンド中で最後に実行された単純コマンドの値です。\fI\fR
       
    58 .sp
       
    59 .ne 2
       
    60 .mk
       
    61 .na
       
    62 \fB\fBfor\fR \fIname\fR [ \fBin\fR \fIword\fR .\|.\|. ] \fBdo\fR \fIlist\fR \fBdone\fR\fR
       
    63 .ad
       
    64 .sp .6
       
    65 .RS 4n
       
    66 \fBfor\fR コマンドが実行されるたびに、\fIname\fR は \fBin\fR \fIword\fR リストから次に得られる \fIword\fR に設定されます。If \fBin\fR \fIword\fR .\|.\|. を省略すると、\fBfor\fR コマンドは、設定された各定位値パラメータに対して、\fBdo\fR \fIlist\fR を 1 回実行します (後述の「パラメータ置換」を参照)。\fB\fRリストの word がなくなると、実行は終了します。
       
    67 .RE
       
    68 
       
    69 .sp
       
    70 .ne 2
       
    71 .mk
       
    72 .na
       
    73 \fB\fBcase\fR \fIword\fR \fBin\fR [ \fIpattern\fR [ | \fIpattern\fR ] \fB)\fR \fIlist\fR \fB;\|;\fR ] .\|.\|. \fBesac\fR\fR
       
    74 .ad
       
    75 .sp .6
       
    76 .RS 4n
       
    77 \fBcase\fR コマンドは、\fIword\fR に一致する最初の \fIpattern\fR に対応した \fIlist\fR を実行します。パターンの形式は、ファイル名生成に使用される形式と同じです (「ファイル名の生成」の節を参照)。ただしスラッシュ、先行するドット、およびスラッシュ直後のドットは、明示的に一致しなくてもかまいません。\fB\fR
       
    78 .RE
       
    79 
       
    80 .sp
       
    81 .LP
       
    82 \fBif\fR \fIlist\fR \fB; then\fR \fIlist\fR \fBelif\fR \fIlist\fR \fB; then\fR \fIlist\fR \fB;\fR ] .\|.\|. [ \fBelse\fR \fI list\fR \fB;\fR ] \fBfi\fR
       
    83 .sp
       
    84 .LP
       
    85 \fIif\fR の後の \fBlist\fR を実行後、\fIlist\fR が 0 の終了ステータスを返すと、最初の \fBthen\fR の後の list を実行します。それ以外の場合、\fBelif\fR の後の \fIlist\fR を実行します。この値が 0 の場合、次の \fBthen\fR の後の \fIlist\fR を実行します。これが失敗すると、\fBelse\fR \fIlist\fR を実行します。\fBelse\fR \fIlist\fR も \fBthen\fR \fIlist\fR も実行しない場合、\fBif\fR コマンドは 0 の終了ステータスを返します。
       
    86 .sp
       
    87 .ne 2
       
    88 .mk
       
    89 .na
       
    90 \fB\fBwhile\fR \fIlist\fR \fBdo\fR \fIlist\fR \fBdone\fR\fR
       
    91 .ad
       
    92 .RS 27n
       
    93 .rt  
       
    94 \fBwhile\fR コマンドは、\fBwhile\fR \fIlist\fR を繰り返し実行し、list 中の最後のコマンドの終了ステータスが 0 の場合、\fBdo\fR \fIlist\fR を実行します。それ以外の場合、ループは終了します。\fBdo\fR \fIlist\fR 中のコマンドを実行しない場合、\fBwhile\fR コマンドは 0 の終了ステータスを返します。ループ終了条件の判定を逆にするには、\fBwhile\fR の代わりに \fBuntil\fR を使用します。
       
    95 .RE
       
    96 
       
    97 .sp
       
    98 .ne 2
       
    99 .mk
       
   100 .na
       
   101 \fB\fB(\fR\fIlist\fR\fB)\fR\fR
       
   102 .ad
       
   103 .RS 27n
       
   104 .rt  
       
   105 サブシェル内の \fIlist\fR の実行
       
   106 .RE
       
   107 
       
   108 .sp
       
   109 .ne 2
       
   110 .mk
       
   111 .na
       
   112 \fB\fB{\fR \fIlist\fR\fB;}\fR\fR
       
   113 .ad
       
   114 .RS 27n
       
   115 .rt  
       
   116 現在の (つまり、親) シェル内での \fIlist\fR の実行。記号 \fB{\fR の後にはスペースが必要です。
       
   117 .RE
       
   118 
       
   119 .sp
       
   120 .ne 2
       
   121 .mk
       
   122 .na
       
   123 \fB\fIname\fR \fB(\|) {\fR \fIlist\fR\fB;}\fR\fR
       
   124 .ad
       
   125 .RS 27n
       
   126 .rt  
       
   127 \fIname\fR が参照する関数を定義します。\fB{\fR と \fB}\fR の間のコマンド群 (\fIlist\fR) が関数の本体となります (後述の「関数」参照)。記号 \fB{\fR の後にはスペースが必要です。関数の実行については「実行」の節で後述します。\fB\fR関数の本体が、前述の「コマンド」の節で定義したようなコマンドの場合、\fB{\fR および \fB}\fR は必要ではありません。\fI\fR\fB\fR
       
   128 .RE
       
   129 
       
   130 .sp
       
   131 .LP
       
   132 下記のワードは、コマンドの最初に現れたとき、およびクォートされずに記述されたときに認識されます。
       
   133 .sp
       
   134 .LP
       
   135 \fBif then else elif fi case esac for while until do done { }\fR
       
   136 .SS "注釈行"
       
   137 .sp
       
   138 .LP
       
   139 \fB#\fR でワードを始めると、そのワードおよび以降の 復帰改行までの文字がすべて無視されます。
       
   140 .SS "コマンド置換"
       
   141 .sp
       
   142 .LP
       
   143 シェルは、2 つの逆引用符 (\fB``\fR) で囲まれた文字列からコマンドを読み取ります。これらのコマンドからの標準出力は、ワードの一部または全体として使用できます。標準出力上で最後につく復帰改行は削除されます。
       
   144 .sp
       
   145 .LP
       
   146 文字列は、読み取られる前にはいっさい解釈されません。ただし例外として、文字のエスケープに使用されるバックスラッシュ (\fB\e\fR) の削除だけは行われます。バックスラッシュは、逆引用符 (\fB`\fR) または別のバックスラッシュ (\fB\e\fR) をエスケープするためにも使用され、コマンド文字列の読み取り前に削除されます。逆引用符をエスケープすることにより、コマンド置換のネストが可能になります。コマンド置換が、一対の二重引用符に囲まれている場合 (\fB" .\|.\|.\|` .\|.\|.\|` .\|.\|.\| "\fR)、二重引用符 (\fB\e"\fR) をエスケープするために使用されたバックスラッシュが削除されます。その他の場合は、変更がないままです。
       
   147 .sp
       
   148 .LP
       
   149 復帰改行文字のエスケープにバックスラッシュを用いた場合は (\fB\enewline\fR)、バックスラッシュと復帰改行の両方が削除されます (後述の「クォート」の節の後半を参照)。\fB\fRさらに、ドル記号 (\fB\e$\fR) をエスケープしているバックスラッシュも削除されます。コマンド文字列に対するパラメータの置換は 読み取り前には行われないので、バックスラッシュでドル記号をエスケープしようとしても 無意味です。\fB\e\fR、\fB`\fR、\fB"\fR、復帰改行 (\fBnewline\fR)、および \fB$\fR 以外の文字の前に付くバックスラッシュは、コマンド文字列の読み取り時にもそのまま残ります。
       
   150 .SS "パラメータ置換"
       
   151 .sp
       
   152 .LP
       
   153 文字 \fB$\fR は、置換可能なパラメータ (\fIparameter\fR) を示します。パラメータには、定位置パラメータとキーワードパラメータの 2 種類があります。パラメータが数字の場合、これは定位置パラメータです。\fI\fR定位置パラメータには、\fBset\fR によって値を割り当てることができます。キーワードパラメータ (変数とも呼ばれる) には、次の記述により値を代入することもできます。
       
   154 .sp
       
   155 .LP
       
   156 \fIname\fR\fB=\fR\fIvalue\fR [ \fIname\fR\fB=\fR\fIvalue\fR ] .\|.\|.
       
   157 .sp
       
   158 .LP
       
   159 \fIvalue\fR に対しては、パターンマッチングは行われません。同じ \fIname\fR を持つ関数と変数が存在することはできません。
       
   160 .sp
       
   161 .ne 2
       
   162 .mk
       
   163 .na
       
   164 \fB\fB${\fR\fIparameter\fR\fB}\fR\fR
       
   165 .ad
       
   166 .RS 25n
       
   167 .rt  
       
   168 パラメータの値 ( もしあれば ) は置換されます。中括弧が必要となるのは、パラメータの後に、その名前の一部として解釈すべきでない文字、数字、または下線を指定するときだけです。\fI\fR\fIparameter\fR が \fB*\fR または \fB@\fR の場合、\fB$1\fR で始まる定位値パラメータはすべて (スペースで区切られて) 置換されます。パラメータ \fB$0\fR は、シェルが呼び出されたときに、引数 0 から設定されます。
       
   169 .RE
       
   170 
       
   171 .sp
       
   172 .ne 2
       
   173 .mk
       
   174 .na
       
   175 \fB\fB${\fR\fIparameter\fR\fB:\(mi\fR\fIword\fR\fB}\fR\fR
       
   176 .ad
       
   177 .RS 25n
       
   178 .rt  
       
   179 デフォルト値の使用。\fIparameter\fR が未設定または NULL の場合は、\fIword\fR の展開結果に置換されます。それ以外の場合は、\fIparameter\fR の値に置換されます。
       
   180 .RE
       
   181 
       
   182 .sp
       
   183 .ne 2
       
   184 .mk
       
   185 .na
       
   186 \fB\fB${\fR\fIparameter\fR\fB:=\fR\fIword\fR\fB}\fR\fR
       
   187 .ad
       
   188 .RS 25n
       
   189 .rt  
       
   190 デフォルト値の割り当て。\fIparameter\fR が未設定または NULL の場合は、\fIword\fR の展開結果が \fIparameter\fR に割り当てられます。どのような場合でも、\fIparameter\fR の最終的な値に置換されます。この割り当て方法は変数だけに使用可能で、定位置パラメータや特殊パラメータには使用できません。
       
   191 .RE
       
   192 
       
   193 .sp
       
   194 .ne 2
       
   195 .mk
       
   196 .na
       
   197 \fB\fB${\fR\fIparameter\fR\fB:?\fR\fIword\fR\fB}\fR\fR
       
   198 .ad
       
   199 .RS 25n
       
   200 .rt  
       
   201 \fIparameter\fR が NULL 以外の値に設定されている場合、その値に置き換えられます。その他の場合、\fIword\fR を出力しシェルを終了します。\fIword\fR を省略すると、メッセージ "parameter null or not set" が出力されます。
       
   202 .RE
       
   203 
       
   204 .sp
       
   205 .ne 2
       
   206 .mk
       
   207 .na
       
   208 \fB\fB${\fR\fIparameter\fR\fB:+\fR\fIword\fR\fB}\fR\fR
       
   209 .ad
       
   210 .RS 25n
       
   211 .rt  
       
   212 \fIparameter\fR が NULL 以外の値に設定されている場合、\fIword\fR に置き換えられます。その他の場合は置換を行いません。
       
   213 .RE
       
   214 
       
   215 .sp
       
   216 .LP
       
   217 前述にあるように、\fIword\fR は、代入用文字列として使用する場合にだけ評価されます。たとえば次の例では、\fBpwd\fR が実行されるのは、\fBd\fR が設定されていないかあるいは NULL に設定されている場合だけです。
       
   218 .sp
       
   219 .in +2
       
   220 .nf
       
   221 \fBecho  ${d:\(mi`pwd`}\fR
       
   222 .fi
       
   223 .in -2
       
   224 .sp
       
   225 
       
   226 .sp
       
   227 .LP
       
   228 前述の式からコロン (\fB:\fR) を省略すると、シェルは \fIparameter\fR が設定されているかどうかだけをチェックします。
       
   229 .sp
       
   230 .LP
       
   231 次のパラメータは、シェルが自動的に設定します。
       
   232 .sp
       
   233 .ne 2
       
   234 .mk
       
   235 .na
       
   236 \fB\fB#\fR\fR
       
   237 .ad
       
   238 .RS 8n
       
   239 .rt  
       
   240 定位置パラメータ数 (10 進数 )
       
   241 .RE
       
   242 
       
   243 .sp
       
   244 .ne 2
       
   245 .mk
       
   246 .na
       
   247 \fB\fB\(mi\fR\fR
       
   248 .ad
       
   249 .RS 8n
       
   250 .rt  
       
   251 呼び出し時にまたは \fBset\fR コマンドによってシェルに与えられたフラグ
       
   252 .RE
       
   253 
       
   254 .sp
       
   255 .ne 2
       
   256 .mk
       
   257 .na
       
   258 \fB\fB?\fR\fR
       
   259 .ad
       
   260 .RS 8n
       
   261 .rt  
       
   262 最後に同期実行されたコマンドが返した 10 進数
       
   263 .RE
       
   264 
       
   265 .sp
       
   266 .ne 2
       
   267 .mk
       
   268 .na
       
   269 \fB\fB$\fR\fR
       
   270 .ad
       
   271 .RS 8n
       
   272 .rt  
       
   273 このシェルのプロセス番号
       
   274 .RE
       
   275 
       
   276 .sp
       
   277 .ne 2
       
   278 .mk
       
   279 .na
       
   280 \fB\fB!\fR\fR
       
   281 .ad
       
   282 .RS 8n
       
   283 .rt  
       
   284 最後に呼び出されたバックグラウンドコマンドのプロセス番号
       
   285 .RE
       
   286 
       
   287 .sp
       
   288 .LP
       
   289 次のパラメータはシェルによって使用されます。このセクションのパラメータは、環境変数とも呼ばれます。
       
   290 .sp
       
   291 .ne 2
       
   292 .mk
       
   293 .na
       
   294 \fB\fBHOME\fR\fR
       
   295 .ad
       
   296 .RS 13n
       
   297 .rt  
       
   298 \fBcd\fR コマンドのデフォルト引数 (ホームディレクトリ)。\fBlogin\fR(1) によって、パスワードファイルから ユーザーのログインディレクトリに設定されます (\fBpasswd\fR(4) を参照)。
       
   299 .RE
       
   300 
       
   301 .sp
       
   302 .ne 2
       
   303 .mk
       
   304 .na
       
   305 \fB\fBPATH\fR\fR
       
   306 .ad
       
   307 .RS 13n
       
   308 .rt  
       
   309 コマンド用検索パス (後述の「実行」を参照)。\fB\fR
       
   310 .RE
       
   311 
       
   312 .sp
       
   313 .ne 2
       
   314 .mk
       
   315 .na
       
   316 \fB\fBCDPATH\fR\fR
       
   317 .ad
       
   318 .RS 13n
       
   319 .rt  
       
   320 \fBcd\fR コマンドの検索パスを指定します。
       
   321 .RE
       
   322 
       
   323 .sp
       
   324 .ne 2
       
   325 .mk
       
   326 .na
       
   327 \fB\fBMAIL\fR\fR
       
   328 .ad
       
   329 .RS 13n
       
   330 .rt  
       
   331 このパラメータにメールファイルの名前がセットされていて、かつ \fBMAILPATH\fR パラメータが設定されていない場合、シェルは指定されたファイルにメールが到着するとユーザーに通知します。\fI\fR
       
   332 .RE
       
   333 
       
   334 .sp
       
   335 .ne 2
       
   336 .mk
       
   337 .na
       
   338 \fB\fBMAILCHECK\fR\fR
       
   339 .ad
       
   340 .RS 13n
       
   341 .rt  
       
   342 このパラメータは、\fBMAILPATH\fR または \fBMAIL\fR パラメータで指定されたファイルへメールが到着したか否かを、シェルが何秒ごとにチェックするかを指定します。デフォルト値は \fB600\fR 秒 (10 分) です。0 が設定された場合、シェルは各プロンプトを出す前にチェックを行います。
       
   343 .RE
       
   344 
       
   345 .sp
       
   346 .ne 2
       
   347 .mk
       
   348 .na
       
   349 \fB\fBMAILPATH\fR\fR
       
   350 .ad
       
   351 .RS 13n
       
   352 .rt  
       
   353 コロン (:) で区切ったファイル名のリスト。このパラメータが設定されると、指定されたいずれかのファイルにメールが到着するたびに、シェルはユーザーに通知します。各ファイル名の後には、% および更新時刻の変更時に出力されるメッセージを指定できます。デフォルトのメッセージは \fByou have mail\fR です。
       
   354 .RE
       
   355 
       
   356 .sp
       
   357 .ne 2
       
   358 .mk
       
   359 .na
       
   360 \fB\fBPS1\fR\fR
       
   361 .ad
       
   362 .RS 13n
       
   363 .rt  
       
   364 1 次プロンプト文字列。デフォルトは " $ \|" です。
       
   365 .RE
       
   366 
       
   367 .sp
       
   368 .ne 2
       
   369 .mk
       
   370 .na
       
   371 \fB\fBPS2\fR\fR
       
   372 .ad
       
   373 .RS 13n
       
   374 .rt  
       
   375 2 次プロンプト文字列。デフォルトは " > \|" です。
       
   376 .RE
       
   377 
       
   378 .sp
       
   379 .ne 2
       
   380 .mk
       
   381 .na
       
   382 \fB\fBIFS\fR\fR
       
   383 .ad
       
   384 .RS 13n
       
   385 .rt  
       
   386 内部フィールドセパレータ。通常はスペース、タブ、および復帰改行です (「ブランクの解釈」を参照)。\fB\fR\fB\fR\fB\fR\fB\fR
       
   387 .RE
       
   388 
       
   389 .sp
       
   390 .ne 2
       
   391 .mk
       
   392 .na
       
   393 \fB\fBSHACCT\fR\fR
       
   394 .ad
       
   395 .RS 13n
       
   396 .rt  
       
   397 このパラメータにユーザーが書き込み可能なファイル名が設定された場合、シェルは、実行された各シェルプロシージャーごとのアカウンティングレコードをこのファイルに書き込みます。
       
   398 .RE
       
   399 
       
   400 .sp
       
   401 .ne 2
       
   402 .mk
       
   403 .na
       
   404 \fB\fBSHELL\fR\fR
       
   405 .ad
       
   406 .RS 13n
       
   407 .rt  
       
   408 シェルは、呼び出されると、このパラメータが示す名前が環境中に存在するかを確かめます (「環境」の節を参照)。\fB\fR
       
   409 .RE
       
   410 
       
   411 .sp
       
   412 .LP
       
   413 \fBsh\fR の実行に影響を与える次の環境変数についての詳細は、\fBenviron\fR(5) を参照してください。\fBLC_CTYPE\fR および \fBLC_MESSAGES\fR。
       
   414 .sp
       
   415 .LP
       
   416 シェルは、\fBPATH\fR、\fBPS1\fR、\fBPS2\fR、\fBMAILCHECK\fR、および \fBIFS\fR にデフォルト値を割り当てます。\fBHOME\fR および \fBMAIL\fR のデフォルト値は \fBlogin\fR(1) で設定します。
       
   417 .SS "ブランクの解釈"
       
   418 .sp
       
   419 .LP
       
   420 パラメータとコマンドの置換後、置換の結果内でフィールドセパレータ文字 (\fBIFS\fR で発見されるもの) を検索し、その文字が現れた位置で分割します。分割された各々が引数となります。明示的な NULL 引数 (\fB""\fR または \fB\&''\fR) は保持されます。暗示的な NULL 引数 (値を持たないパラメータにより生ずるもの) は削除されます。\fI\fR
       
   421 .SS "入出力のリダイレクト"
       
   422 .sp
       
   423 .LP
       
   424 シェルが解釈する特殊表記法によって、入出力をリダイレクションできます。以下は、単純コマンド内の任意の位置およびコマンドの前後に指定することができ、起動されたコマンドには引数として引き渡されません。\fI\fR\fI\fR\fB\fR\fB注: \fR \fIword\fR または \fIdigit\fR を使用する前にコマンドとパラメータの置換が発生します。
       
   425 .sp
       
   426 .ne 2
       
   427 .mk
       
   428 .na
       
   429 \fB\fB<\fR\fIword\fR\fR
       
   430 .ad
       
   431 .RS 13n
       
   432 .rt  
       
   433 \fIword\fR というファイルを標準入力 ( ファイル記述子 0) として使用します。
       
   434 .RE
       
   435 
       
   436 .sp
       
   437 .ne 2
       
   438 .mk
       
   439 .na
       
   440 \fB\fB>\fR\fIword\fR\fR
       
   441 .ad
       
   442 .RS 13n
       
   443 .rt  
       
   444 \fIword\fR というファイルを標準出力 ( ファイル記述子 1) として使用します。ファイルが存在しない場合は作成します。ファイルが存在していれば、ファイルの長さを 0 にします。
       
   445 .RE
       
   446 
       
   447 .sp
       
   448 .ne 2
       
   449 .mk
       
   450 .na
       
   451 \fB\fB>>\fR\fIword\fR\fR
       
   452 .ad
       
   453 .RS 13n
       
   454 .rt  
       
   455 \fIword\fR というファイルを標準出力として使用します。ファイルが存在する場合、(\fBEOF\fR までシークしたあと) そのファイルに出力を追加します。そうでない場合は、ファイルを作成します。
       
   456 .RE
       
   457 
       
   458 .sp
       
   459 .ne 2
       
   460 .mk
       
   461 .na
       
   462 \fB\fB<\|>\fR\fIword\fR\fR
       
   463 .ad
       
   464 .RS 13n
       
   465 .rt  
       
   466 \fIword\fR というファイルを標準入力として読み書き用に開きます。
       
   467 .RE
       
   468 
       
   469 .sp
       
   470 .ne 2
       
   471 .mk
       
   472 .na
       
   473 \fB\fB<<\fR[\fB-\fR]\fIword\fR\fR
       
   474 .ad
       
   475 .RS 13n
       
   476 .rt  
       
   477 \fIword\fR に対するパラメータおよびコマンド置換が行われた後、その結果得られた \fIword\fR と文字どおり一致する最初の行が現れるまで、または \fBEOF\fR に達するまでシェルへの入力が読み取られます。ただし \fB<<\fR に \fB\(mi\fR が付加されて指定された場合は、以下のようになります。
       
   478 .RS +4
       
   479 .TP
       
   480 1.
       
   481 まず、シェルへの入力の読み取り前に (ただしパラメータとコマンドの置換後) 、先行するタブを \fIword\fR から取り除きます。\fI\fR
       
   482 .RE
       
   483 .RS +4
       
   484 .TP
       
   485 2.
       
   486 読み取ったシェルへの入力の各行を \fIword\fR と比較する前に、その行から先行するタブを取り除きます。そして、
       
   487 .RE
       
   488 .RS +4
       
   489 .TP
       
   490 3.
       
   491 その結果得られた \fIword\fR と文字どおり一致する最初の行が現れるまで、または \fBEOF\fR に達するまでシェルへの入力が読み取られます。
       
   492 .RE
       
   493 \fIword\fR 中のいずれかの文字がクォートされている場合 (後述の「クォート」を参照) 、シェルへの入力に対して追加処理は行われません。\fB\fR\fIword\fR 中のどの文字もクォートされていない場合は、以下のようになります。
       
   494 .RS +4
       
   495 .TP
       
   496 1.
       
   497 まずパラメータとコマンドの置換を実施します。
       
   498 .RE
       
   499 .RS +4
       
   500 .TP
       
   501 2.
       
   502 エスケープされた復帰改行 ( \fB\enewline\fR ) を削除します。
       
   503 .RE
       
   504 .RS +4
       
   505 .TP
       
   506 3.
       
   507 文字 \fB\e\fR、\fB$\fR、および \fB`\fR に対しては、\fB\e\fR を使ってクォートしなければなりません。
       
   508 .RE
       
   509 その結果得られるドキュメントが標準入力となります。
       
   510 .RE
       
   511 
       
   512 .sp
       
   513 .ne 2
       
   514 .mk
       
   515 .na
       
   516 \fB\fB<&\fR\fIdigit\fR\fR
       
   517 .ad
       
   518 .RS 13n
       
   519 .rt  
       
   520 ファイル記述子 \fIdigit\fR に対応するファイルを標準入力として使用します。同様に、標準出力の使用には \fB>&\fR\fIdigit\fR を指定します。
       
   521 .RE
       
   522 
       
   523 .sp
       
   524 .ne 2
       
   525 .mk
       
   526 .na
       
   527 \fB\fB<&-\fR\fR
       
   528 .ad
       
   529 .RS 13n
       
   530 .rt  
       
   531 標準入力をクローズします。同様に、標準出力については \fB>&\(mi\fR を使用します。
       
   532 .RE
       
   533 
       
   534 .sp
       
   535 .LP
       
   536 前述のいずれかの前に数字が付く場合、その値が (デフォルトの \fB0\fR または \fB1\fR の代わりに) 該当ファイルに対応したファイル記述子となります。例: 
       
   537 .sp
       
   538 .in +2
       
   539 .nf
       
   540 \fB\&... 2>&1\fR
       
   541 .fi
       
   542 .in -2
       
   543 .sp
       
   544 
       
   545 .sp
       
   546 .LP
       
   547 この例では、現在ファイル記述子 1 に関連しているファイルに、ファイル記述子 2 を関連付けます。
       
   548 .sp
       
   549 .LP
       
   550 リダイレクションを指定する場合、記述する順序が重要になります。シェルは、リダイレクション記述を左から右へ評価します。例: 
       
   551 .sp
       
   552 .in +2
       
   553 .nf
       
   554 \fB\&... 1>\fIxxx\fR 2>&1\fR
       
   555 .fi
       
   556 .in -2
       
   557 .sp
       
   558 
       
   559 .sp
       
   560 .LP
       
   561 前述の例では、まず \fIxxx\fR というファイルにファイル記述子 1 を関連付けます。次に、ファイル記述子 1 に関連するファイル ( つまり \fIxxx\fR) に、ファイル記述子 2 を関連付けます。リダイレクションの向きが逆であれば、まずファイル記述子 2 を端末に関連付け (ファイルを記述子 1 が既に端末に関連付けられているとみなし)、次にファイル記述子 1 をファイル \fIxxx\fR に関連付けます。
       
   562 .sp
       
   563 .LP
       
   564 最初のページの「コマンド」の節で述べた用語を使って説明すると、次のようになります。コマンドが複数の単純コマンドで構成される場合、リダイレクションは、個々の単純コマンドに対して行う前に、コマンド全体に対して評価されます。\fB\fR\fI\fR\fI\fR\fI\fR\fI\fRすなわち、シェルはまずリスト全体に対してリダイレクションを評価し、次にリスト内の各パイプラインに対して評価し、次にパイプライン内の各コマンドに対して評価し、最後にコマンド内の各単純コマンドに対して評価します。\fI\fR\fI\fR\fI\fR\fI\fR\fI\fR\fI\fR\fI\fR
       
   565 .sp
       
   566 .LP
       
   567 コマンドの後に \fB&\fR を指定すると、コマンドにおけるデフォルトの標準入力は \fB/dev/null\fR という空ファイルになります。その他の場合、コマンドを実行するための環境には、起動側シェルのファイル記述子 ( 入出力指定で変更可能 ) が含まれます。
       
   568 .SS "ファイル名の生成"
       
   569 .sp
       
   570 .LP
       
   571 コマンド実行に先立ち、各コマンドワードは、\fB*\fR、\fB?\fR、および \fB[\fR を含んでいないかチェックされます。\fI\fRこれらの文字のいずれかがあると、そのワードはパターンとみなされます。\fI\fRこのワードは、パターンと一致する、辞書編集方式の順にソートされたファイル名に置換されます。パターンと一致するファイル名が見つからない場合、ワードは変更されません。ファイル名の先頭のピリオド (\fB\&.\fR) または スラッシュ (\fB/\fR) 直後のピリオドは、明示的に一致しなければなりません (後者の場合はスラッシュ自体をも含む)。\fB\fR
       
   572 .sp
       
   573 .ne 2
       
   574 .mk
       
   575 .na
       
   576 \fB\fB*\fR\fR
       
   577 .ad
       
   578 .RS 13n
       
   579 .rt  
       
   580 NULL 文字列を含め、任意の文字列と一致します。
       
   581 .RE
       
   582 
       
   583 .sp
       
   584 .ne 2
       
   585 .mk
       
   586 .na
       
   587 \fB\fB?\fR\fR
       
   588 .ad
       
   589 .RS 13n
       
   590 .rt  
       
   591 任意の単一文字と一致します。
       
   592 .RE
       
   593 
       
   594 .sp
       
   595 .ne 2
       
   596 .mk
       
   597 .na
       
   598 \fB\fB[\fR.\|.\|.\fB]\fR\fR
       
   599 .ad
       
   600 .RS 13n
       
   601 .rt  
       
   602 括弧内のいずれか 1 文字を表します。2 つの 文字を \fB-\fR で区切ると、その間にある任意の文字 (その 2 つの文字も含む) に一致します。先頭の \fB[\fR の次の文字が \fB!\fR である場合、[ ] で囲まれていない任意の文字と一致します。
       
   603 .RE
       
   604 
       
   605 .sp
       
   606 .LP
       
   607 クォートされているすべての文字 ( 下記「クォート」を参照 ) は、ファイル名において明示的に一致しなければなりませんので、ご注意ください。
       
   608 .SS "クォート"
       
   609 .sp
       
   610 .LP
       
   611 次の文字はシェルに対しては特別な意味を持ち、クォートしない ( 後述の説明を参照 ) 限り ワードの終わりを表します。
       
   612 .sp
       
   613 .LP
       
   614 \fB;  &  (  )  |  ^  <  >\fR  復帰改行  スペース  タブ
       
   615 .sp
       
   616 .LP
       
   617 これらの文字をクォートする、つまり文字自身を表すには、文字の前にバックスラッシュ (\fB\e\fR) を付けるか、または一対の引用符 (\fB\|'\|'\fR または \fB""\fR) で囲みます。\fI\fR処理中、シェルは、特定の文字をクォートして、それらが特別の意味を持たないようにすることができます。単一の文字をクォートするのに用いるバックスラッシュは、コマンド実行前にワードから取り除かれます。\fB\e\fR と復帰改行との組み合せは、コマンドとパラメータの置換前にワードから取り除かれます。
       
   618 .sp
       
   619 .LP
       
   620 一対の単一引用符 (\fB\|'\|'\fR) で囲まれたすべての文字 ( ただし単一引用符は除く ) は、シェルによってクォートされます。バックスラッシュは、一対の単一引用符で囲まれていれば特殊な意味を持ちません。単一引用符は、一対の二重引用符で囲めばクォートされますが (例 \fB"\|'"\fR)、一対の単一引用符で囲んでもクォートされません。
       
   621 .sp
       
   622 .LP
       
   623 一対の二重引用符 (\fB""\fR) の中では、パラメータとコマンドの置換が実施され、シェルは、その結果をクォートして、ブランクの解釈とファイル名の生成が行われないようにします。\fB$*\fR が一組の二重引用符で囲まれている場合、定位置パラメータは置換され、クォートされ、クォートされたスペースで分けられます (\fB"$1 \|$2\fR \|. \|.\|.\fB"\fR). しかし \fB$@\fR が一組の二重引用符で囲まれている場合は、定位置パラメータは置換され、クォートされ、クォートされていないスペースで分けられます (\fB"$1"\|"$2" \fR \| .\|.\|. )。\fB\e\fR は \fB\e\fR、\fB`\fR、\fB"\fR、\fB,\fR (コンマ)、$ といった文字をクォートします。\fB\e\fR と復帰改行との組み合せは、コマンドとパラメータの置換前にワードから取り除かれます。バックスラッシュが \fB\e\fR、\fB`\fR、\fB"\fR、\fB,\fR (コンマ)、$、および 復帰改行以外の文字の前に付く場合は、バックスラッシュ自体がシェルによってクォートされます。
       
   624 .SS "プロンプト"
       
   625 .sp
       
   626 .LP
       
   627 シェルは、対話的に使用すると、コマンドを読み取る前に \fBPS1\fR の値によるプロンプトを発行します。復帰改行を入力したあとで、コマンドを完了するためにさらに入力が必要な場合は、2 次プロンプト (\fBPS2\fR の値 ) が出力されます。
       
   628 .SS "環境"
       
   629 .sp
       
   630 .LP
       
   631 環境 (\fIenvironment\fR) は、通常の引数リストが実行されるプログラムに引き渡される場合と同様の方法で引き渡される、名前と値の対の集まりです (\fBenviron\fR(5) を参照) 。シェルが環境と対話する方法はいくつかあります。シェルは、呼び出されると、環境を走査して、見つけた名前ごとに変数を作成し、対応する値を設定します。ユーザーがこれらのパラメータの値を変更したり 新しいパラメータを作成したときには、\fBexport\fR コマンドを用いてシェルのパラメータを環境に関連付けなければ、これらのパラメータは環境に何の影響も与えません (\fBset\fR \fB-a\fR の説明を参照)。環境からパラメータを削除するには、\fBunset\fR コマンドを使用します。したがって、実行されるコマンドが参照する環境は、シェルが最初に引き継いだ「名前 = 値」の対のうち 変更されていないものから、\fBunset\fR によって削除された対を引き、変更または追加した対をくわえたものです。これらはいずれも \fBexport\fR コマンドで指定する必要があります。
       
   632 .sp
       
   633 .LP
       
   634 単純コマンドの環境は、いくつかのパラメータ代入指定を先頭に付加すれば拡張できます。\fI\fRしたがって、
       
   635 .sp
       
   636 .in +2
       
   637 .nf
       
   638 \fBTERM=450  \fIcommand\fR\fR
       
   639 .fi
       
   640 .in -2
       
   641 .sp
       
   642 
       
   643 .sp
       
   644 .LP
       
   645 および
       
   646 .sp
       
   647 .in +2
       
   648 .nf
       
   649 \fB(export TERM; TERM=450;   \fIcommand\fR\fR
       
   650 .fi
       
   651 .in -2
       
   652 .sp
       
   653 
       
   654 .sp
       
   655 .LP
       
   656 は、\fIcommand\fR が特殊コマンドでなければ、\fIcommand\fR の実行に関するかぎり同じことを意味します。\fIcommand\fR が特殊コマンドの場合、
       
   657 .sp
       
   658 .in +2
       
   659 .nf
       
   660 \fBTERM=450   \fIcommand\fR\fR
       
   661 .fi
       
   662 .in -2
       
   663 .sp
       
   664 
       
   665 .sp
       
   666 .LP
       
   667 現在のシェル内の \fBTERM\fR 変数を修正します。
       
   668 .sp
       
   669 .LP
       
   670 \fB-k\fR フラグを設定すると、すべてのキーワード引数は環境に格納されます。これらの引数がコマンド名の後に指定された場合も同様です。\fI\fR以下の例では、まず \fBa=b c\fR を、次に \fBc\fR を表示します。
       
   671 .sp
       
   672 .in +2
       
   673 .nf
       
   674 \fBecho a=b  c
       
   675 
       
   676 a=b  c
       
   677 
       
   678 set  \(mik
       
   679 
       
   680 echo a=b  c
       
   681 
       
   682 c\fR
       
   683 .fi
       
   684 .in -2
       
   685 .sp
       
   686 
       
   687 .SS "シグナル"
       
   688 .sp
       
   689 .LP
       
   690 起動されたコマンドに対する \fBINTERRUPT\fR シグナルと \fBQUIT\fR シグナルは、コマンドの後に \fB&\fR が付く場合には無視されます。その他の場合、シグナルは、シェルが親から引き継いだ値を持ちます。ただし、シグナル 11 だけは例外です ( 後述の \fBtrap\fR コマンドの説明を参照 ) 。
       
   691 .SS "実行"
       
   692 .sp
       
   693 .LP
       
   694 コマンド実行のたびに、前述の コマンドの置換、パラメータの置換、ブランクの解釈、入出力のリダイレクション、およびファイル名の生成が行われます。コマンド名が定義済みの関数名と一致する場合、その関数がシェルプロセスで実行されます ( これと実行時にサブシェルを要求する シェルスクリプトファイルの実行の違いに注意 ) 。定義済み関数名とは一致しないが、後述の特殊コマンドのいずれかと一致するコマンド名の場合、そのコマンドがシェルプロセスで実行されます。\fB\fR
       
   695 .sp
       
   696 .LP
       
   697 定位置パラメータの \fB$1\fR、\fB$2\fR、. \|.\|.  は関数の引数に設定されます。コマンド名が特殊コマンドとも定義済み関数の名前とも一致しない場合、新しいプロセスが作成され、\fBexec\fR(2) を用いてそのコマンドの実行が試みられます。\fB\fR
       
   698 .sp
       
   699 .LP
       
   700 \fBPATH\fR というシェルパラメータは、コマンドを含んでいる ディレクトリの検索パスを定義します。2 つのディレクトリ名は、コロン (\fB:\fR) で区切ります。デフォルトのパスは \fB/usr/bin\fR です。現在のディレクトリは NULL パス名によって指定されます。これは等号の直後、パスリスト内の任意の場所にある 2 つの区切り文字のコロンの間、またはパスリストの最後に記述できます。コマンド名に \fB/\fR が含まれている場合は、検索パスは使用されません。そうでない場合は、パスにおける各ディレクトリに実行可能ファイルがあるか検索します。ファイルが実行権を有するが、それが \fBa.out\fR ファイルでない場合、シェルコマンドの入ったファイルとみなされます。そのファイルを読み取るときは、サブシェルが生成されます。括弧で囲まれたコマンドもサブシェル内で実行されます。
       
   701 .sp
       
   702 .LP
       
   703 シェルは、(あとで不必要な \fIexec\fR を行わなくてもいいように) 検索パス内のコマンドの位置を記憶します。コマンドが相対ディレクトリにあった場合、その位置を 現在のディレクトリの変更のたびに再決定しなければなりません。シェルは、\fBPATH\fR 変数が変更されるか \fBhash\fR \fB-r\fR コマンドが実行されるたびに、記憶していたすべての位置を忘れてしまいます ( 下記参照 ) 。
       
   704 .SS "特殊コマンド"
       
   705 .sp
       
   706 .LP
       
   707 以下に示す特殊コマンドに対しては、入出力のリダイレクションが可能です。ファイル記述子 1 は、デフォルトの出力位置です。ジョブ制御が可能なときには、さらにいくつかの特殊コマンドがシェル環境に追加されます (「ジョブ制御」の節を参照)。\fB\fR\fB\fR
       
   708 .sp
       
   709 .ne 2
       
   710 .mk
       
   711 .na
       
   712 \fB\fB:\fR\fR
       
   713 .ad
       
   714 .sp .6
       
   715 .RS 4n
       
   716 コマンドは何もせず、実行による影響は何もありません。終了ステータス 0 が返されます。
       
   717 .RE
       
   718 
       
   719 .sp
       
   720 .ne 2
       
   721 .mk
       
   722 .na
       
   723 \fB\fB\&.\|\fR \fIfilename\fR\fR
       
   724 .ad
       
   725 .sp .6
       
   726 .RS 4n
       
   727 \fIfilename\fR からコマンドを読み取り実行し、戻ります。\fBPATH\fR によって指定された検索パスを用いて、\fIfilename\fR を含むディレクトリを探します。
       
   728 .RE
       
   729 
       
   730 .sp
       
   731 .ne 2
       
   732 .mk
       
   733 .na
       
   734 \fB\fBbg\fR [\fB%\fR\fIjobid .\|.\|.\fR]\fR
       
   735 .ad
       
   736 .sp .6
       
   737 .RS 4n
       
   738 ジョブ制御が可能なとき、\fBbg\fR コマンドはジョブの操作用に ユーザー環境に追加されます。停止状態のジョブをバックグラウンドで再び実行します。\fB%\fR\fIjobid\fR を省略すると、現在のジョブとみなされます。 (詳細については後述の「ジョブ制御」の節を参照)。\fB\fR
       
   739 .RE
       
   740 
       
   741 .sp
       
   742 .ne 2
       
   743 .mk
       
   744 .na
       
   745 \fB\fBbreak\fR [ \fIn\fR ]\fR
       
   746 .ad
       
   747 .sp .6
       
   748 .RS 4n
       
   749 \fBfor\fR または \fBwhile\fR ループがあれば抜け出します。\fIn\fR を指定すると、\fIn\fR レベル分ブレークします。
       
   750 .RE
       
   751 
       
   752 .sp
       
   753 .ne 2
       
   754 .mk
       
   755 .na
       
   756 \fB\fBcd\fR [ \fIargument\fR ]\fR
       
   757 .ad
       
   758 .sp .6
       
   759 .RS 4n
       
   760 現在のディレクトリを \fIargument\fR に変更します。シェルパラメータ \fBHOME\fR は、\fIargument\fR のデフォルト値です。シェルパラメータ \fBCDPATH\fR は、\fIargument\fR を含むディレクトリの検索パスを定義します。2 つのディレクトリ名は、コロン (\fB:\fR) で区切ります。デフォルトのパスは空の文字列です (現在のディレクトリの指定)。\fB\fR\fBなお \fR現在のディレクトリは 空のパス名で指定します。このパス名は、等号の直後か、パスリスト内の区切り文字のコロンの間に指定します。\fIargument\fR の先頭文字が \fB/\fR の場合、検索パスは使用しません。それ以外の場合は、パス中の各ディレクトリで \fIargument\fR を検索します。
       
   761 .RE
       
   762 
       
   763 .sp
       
   764 .ne 2
       
   765 .mk
       
   766 .na
       
   767 \fB\fBchdir\fR [ \fIdir\fR ]\fR
       
   768 .ad
       
   769 .sp .6
       
   770 .RS 4n
       
   771 \fBchdir\fR はシェルの作業用ディレクトリを \fIdir\fR が示すディレクトリに変更します。引数を指定しないと、そのユーザーのホームディレクトリに変更します。\fIdir\fR が現在のディレクトリからは見つからない相対パス名の場合、変数 \fBCDPATH\fR 環境内のディレクトリリストを検索します。\fIdir\fR が \fB/\fR で始まる値を持つシェル変数の名前である場合、その変数の値が示すディレクトリに変更します。
       
   772 .RE
       
   773 
       
   774 .sp
       
   775 .ne 2
       
   776 .mk
       
   777 .na
       
   778 \fB\fBcontinue\fR [ \fIn\fR ]\fR
       
   779 .ad
       
   780 .sp .6
       
   781 .RS 4n
       
   782 \fBfor\fR または \fBwhile\fR ループの次の繰り返しを実行します。\fIn\fR を指定すると、\fIn\fR 番目のループから実行します。
       
   783 .RE
       
   784 
       
   785 .sp
       
   786 .ne 2
       
   787 .mk
       
   788 .na
       
   789 \fB\fBecho\fR [ \fIarguments\fR .\|.\|. ]\fR
       
   790 .ad
       
   791 .sp .6
       
   792 .RS 4n
       
   793 \fIarguments\fR の文字列が スペース文字に区切られて、シェルの標準出力に書かれます。使用法と説明については \fBecho\fR(1) を参照してください。
       
   794 .RE
       
   795 
       
   796 .sp
       
   797 .ne 2
       
   798 .mk
       
   799 .na
       
   800 \fB\fBeval\fR [ \fIargument\fR .\|.\|. ]\fR
       
   801 .ad
       
   802 .sp .6
       
   803 .RS 4n
       
   804 引数をシェルへの入力として読み取り、生成されるコマンドを実行します。
       
   805 .RE
       
   806 
       
   807 .sp
       
   808 .ne 2
       
   809 .mk
       
   810 .na
       
   811 \fB\fBexec\fR [ \fIargument\fR .\|.\|. ]\fR
       
   812 .ad
       
   813 .sp .6
       
   814 .RS 4n
       
   815 このシェルの代わりに、引数で指定されたコマンドを (新規プロセスは生成せずに) 実行します。入出力引数が指定可能で、その他の引数が指定されない場合は、これによってシェルの入出力が変更されます。
       
   816 .RE
       
   817 
       
   818 .sp
       
   819 .ne 2
       
   820 .mk
       
   821 .na
       
   822 \fB\fBexit\fR [ \fIn\fR ]\fR
       
   823 .ad
       
   824 .sp .6
       
   825 .RS 4n
       
   826 呼び出し元のシェルまたはシェルスクリプトを \fIn\fR で指定した終了ステータスで終了させます。\fIn\fR を省略すると、最後に実行されたコマンドの終了ステータスがシェルの終了ステータスになります (\fBEOF\fR によっても、シェルは終了します)。
       
   827 .RE
       
   828 
       
   829 .sp
       
   830 .ne 2
       
   831 .mk
       
   832 .na
       
   833 \fB\fBexport\fR [ \fIname\fR .\|.\|. ]\fR
       
   834 .ad
       
   835 .sp .6
       
   836 .RS 4n
       
   837 指定された \fIname\fR 群に対し、後で実行されるコマンドの環境へ自動的にエクスポートされるようにマークを付けます。\fI\fR引数を省略すると、現在のシェル実行中にエクスポートのマークが付けられた 変数名を一覧表示します。親シェルからエクスポートされた変数名は、現在のシェル実行中に再びエクスポートされた場合にだけ 一覧表示されます。関数名はエクスポートされません。\fB\fR
       
   838 .RE
       
   839 
       
   840 .sp
       
   841 .ne 2
       
   842 .mk
       
   843 .na
       
   844 \fB\fBfg\fR [\fB%\fR\fIjobid .\|.\|.\fR]\fR
       
   845 .ad
       
   846 .sp .6
       
   847 .RS 4n
       
   848 ジョブ制御が可能なとき、\fBfg\fR はジョブの操作用に ユーザー環境に追加されます。このコマンドは、フォアグラウンド状態の停止ジョブを再び実行します。また、実行中のバックグラウンドジョブをフォアグラウンドへ移します。\fB%\fR\fIjobid\fR を省略すると、現在のジョブとみなされます。(詳細については後述の「ジョブ制御」の節を参照。)\fB\fR
       
   849 .RE
       
   850 
       
   851 .sp
       
   852 .ne 2
       
   853 .mk
       
   854 .na
       
   855 \fB\fBgetopts\fR\fR
       
   856 .ad
       
   857 .sp .6
       
   858 .RS 4n
       
   859 コマンドシンタクス標準のサポート用に、シェルスクリプト内で使用されるコマンドです (\fBIntro\fR(1) を参照)。このコマンドは、定位置パラメータを構文解析し、オプションの正当性をチェックします。使用法と説明については、\fBgetoptcvt\fR(1) を参照してください。
       
   860 .RE
       
   861 
       
   862 .sp
       
   863 .ne 2
       
   864 .mk
       
   865 .na
       
   866 \fB\fBhash\fR [ \fB-r\fR ] [ \fIname\fR .\|.\|. ]\fR
       
   867 .ad
       
   868 .sp .6
       
   869 .RS 4n
       
   870 シェルは、各 \fIname\fR ごとに、それが示すコマンドの検索パス内の位置を決定し、記憶します。\fI\fR\fB-r\fR オプションを指定すると、シェルは記憶したすべての位置を忘れます。引数をまったく指定しないと、記憶されたコマンドに関する情報が表示されます。この出力表示において、\fIhits\fR はシェルプロセスによってコマンドが呼び出された回数を表します。\fIcost\fR は、検索パスのコマンドを見つけるのに必要な作業です。コマンドが検索パスの「相対」ディレクトリにある場合、そのディレクトリの変更後にそのコマンドが格納された位置が再計算されます。これが行われるコマンドに対しては、\fIhits\fR 情報の隣にアスタリスク (\fB*\fR) が示されます。\fICost\fR の値は、再計算が行われるたびに増加されます。
       
   871 .RE
       
   872 
       
   873 .sp
       
   874 .ne 2
       
   875 .mk
       
   876 .na
       
   877 \fB\fBjobs\fR [\fB\fR\fB-p\fR\fB|\fR\fB-l\fR] [\fB%\fR\fIjobid ...\fR]\fR
       
   878 .ad
       
   879 .br
       
   880 .na
       
   881 \fB\fBjobs\fR \fB-x\fR \fIcommand\fR [\fIarguments\fR] \fR
       
   882 .ad
       
   883 .sp .6
       
   884 .RS 4n
       
   885 停止中またはバックグラウンドで実行中の すべてのジョブを報告します。\fB%\fR\fIjobid\fR を省略すると、停止中またはバックグラウンドで稼動中のすべてのジョブが報告されます。(詳細については後述の「ジョブ制御」の節を参照。)\fB\fR
       
   886 .RE
       
   887 
       
   888 .sp
       
   889 .ne 2
       
   890 .mk
       
   891 .na
       
   892 \fB\fBkill\fR [ \fB-\fR\fIsig\fR ] \fB%\fR\fIjob\fR .\|.\|.\fR
       
   893 .ad
       
   894 .br
       
   895 .na
       
   896 \fB\fBkill\fR \fB-l\fR\fR
       
   897 .ad
       
   898 .sp .6
       
   899 .RS 4n
       
   900 \fBTERM\fR (終了) シグナルまたは指定されたシグナルのいずれかを、指定されたジョブまたはプロセスに送信します。シグナルは、番号または名前 (\fBsignal.h\fR(3HEAD) に示されるもので、ただし「SIG」という接頭辞を取り除いたもの (\fBCHLD\fR と名付けられる \fBSIGCHD\fR 以外)) で指定します。送信するシグナルが \fBTERM\fR (終了) または \fBHUP\fR (ハングアップ) の場合、停止中のジョブまたはプロセスには \fBCONT\fR (継続) シグナルを送信します。\fIjob\fR という引数は、活動中のジョブではないプロセスのプロセス ID を指定することもできます。後述の「ジョブ制御」の節を参照してください。\fB\fR\fI\fR第 2 の形式の \fBkill\fR \fB-l\fR は、シグナル番号とシグナル名をリスト表示します。(\fBkill\fR(1) 参照)。
       
   901 .RE
       
   902 
       
   903 .sp
       
   904 .ne 2
       
   905 .mk
       
   906 .na
       
   907 \fB\fBlogin\fR [ \fIargument\fR .\|.\|. ]\fR
       
   908 .ad
       
   909 .sp .6
       
   910 .RS 4n
       
   911 `\fBexec\fR \fBlogin\fR \fIargument\fR.\|.\|.\|' と同機能です。使用法と説明については、\fBlogin\fR(1) を参照してください。
       
   912 .RE
       
   913 
       
   914 .sp
       
   915 .ne 2
       
   916 .mk
       
   917 .na
       
   918 \fB\fBnewgrp\fR [ \fIargument\fR ]\fR
       
   919 .ad
       
   920 .sp .6
       
   921 .RS 4n
       
   922 \fBexec\fR \fBnewgrp\fR\fI argument\fR と同機能です。使用法と説明については、\fBnewgrp\fR(1) を参照してください。
       
   923 .RE
       
   924 
       
   925 .sp
       
   926 .ne 2
       
   927 .mk
       
   928 .na
       
   929 \fB\fBpwd\fR\fR
       
   930 .ad
       
   931 .sp .6
       
   932 .RS 4n
       
   933 現在の作業用ディレクトリを表示します。使用法と説明については、\fBpwd\fR(1) を参照してください。
       
   934 .RE
       
   935 
       
   936 .sp
       
   937 .ne 2
       
   938 .mk
       
   939 .na
       
   940 \fB\fBread\fR \fIname\fR .\|.\|.\fR
       
   941 .ad
       
   942 .sp .6
       
   943 .RS 4n
       
   944 標準入力から 1 行を読み取り、内部フィールドセパレータの \fBIFS\fR (通常はスペースまたはタブ) を用いてワード境界を区切り、最初のワードを最初の \fIname\fR に割り当て、2 番目のワードを 2 番目の \fIname\fR に割り当て、続くワードも順次割り当てます。残ったワードは最後の \fIname\fR に割り当てます。\fB\e \fR に続いて復帰改行を入力すれば、行を継続できます。復帰改行以外の文字の前にバックスラッシュを付加すれば、その文字をクォートできます。\fB\fRこのバックスラッシュは、ワードが \fIname\fR に割り当てられる前に削除され、バックスラッシュの後に位置する文字は解釈されません。\fBEOF\fR に到達した場合を除き、リターンコードは \fB0\fR となります。
       
   945 .RE
       
   946 
       
   947 .sp
       
   948 .ne 2
       
   949 .mk
       
   950 .na
       
   951 \fB\fBreadonly\fR [ \fIname\fR .\|.\|. ]\fR
       
   952 .ad
       
   953 .sp .6
       
   954 .RS 4n
       
   955 指定された各 \fIname\fR に「読み取り専用」のマークを付け、これらの名前が後続の割り当てでは変更できないようにします。\fB\fR\fI\fR引数を省略すると、読み取り専用と指定された名前がすべて一覧表示されます。\fB\fR
       
   956 .RE
       
   957 
       
   958 .sp
       
   959 .ne 2
       
   960 .mk
       
   961 .na
       
   962 \fB\fBreturn\fR [ \fIn\fR ]\fR
       
   963 .ad
       
   964 .sp .6
       
   965 .RS 4n
       
   966 関数を、\fIn\fR が示すリターンステータスで終了させます。\fIn\fR を省略すると、リターンステータスは最後に実行された コマンドのリターンステータスになります。
       
   967 .RE
       
   968 
       
   969 .sp
       
   970 .ne 2
       
   971 .mk
       
   972 .na
       
   973 \fB\fBset\fR [ \fB-aefhkntuvx\fR [ \fIargument\fR .\|.\|. ] ]\fR
       
   974 .ad
       
   975 .sp .6
       
   976 .RS 4n
       
   977 .sp
       
   978 .ne 2
       
   979 .mk
       
   980 .na
       
   981 \fB\fB-a\fR\fR
       
   982 .ad
       
   983 .RS 6n
       
   984 .rt  
       
   985 エクスポート用に修正または作成された変数にマークを付けます。
       
   986 .RE
       
   987 
       
   988 .sp
       
   989 .ne 2
       
   990 .mk
       
   991 .na
       
   992 \fB\fB-e\fR\fR
       
   993 .ad
       
   994 .RS 6n
       
   995 .rt  
       
   996 コマンドが 0 以外の終了ステータスで終了した場合、直ちに終了します。
       
   997 .RE
       
   998 
       
   999 .sp
       
  1000 .ne 2
       
  1001 .mk
       
  1002 .na
       
  1003 \fB\fB-f\fR\fR
       
  1004 .ad
       
  1005 .RS 6n
       
  1006 .rt  
       
  1007 ファイル名を生成しないようにします。
       
  1008 .RE
       
  1009 
       
  1010 .sp
       
  1011 .ne 2
       
  1012 .mk
       
  1013 .na
       
  1014 \fB\fB-h\fR\fR
       
  1015 .ad
       
  1016 .RS 6n
       
  1017 .rt  
       
  1018 関数の定義時に、関数コマンドを検索しその位置を記憶します ( 通常、関数コマンドは関数実行時に検索されます ) 。
       
  1019 .RE
       
  1020 
       
  1021 .sp
       
  1022 .ne 2
       
  1023 .mk
       
  1024 .na
       
  1025 \fB\fB-k\fR\fR
       
  1026 .ad
       
  1027 .RS 6n
       
  1028 .rt  
       
  1029 コマンド名の前にあるキーワード引数だけでなく、すべてのキーワード引数がコマンド用の環境に置かれます。
       
  1030 .RE
       
  1031 
       
  1032 .sp
       
  1033 .ne 2
       
  1034 .mk
       
  1035 .na
       
  1036 \fB\fB-n\fR\fR
       
  1037 .ad
       
  1038 .RS 6n
       
  1039 .rt  
       
  1040 コマンドを読み取るが、実行しません。
       
  1041 .RE
       
  1042 
       
  1043 .sp
       
  1044 .ne 2
       
  1045 .mk
       
  1046 .na
       
  1047 \fB\fB-t\fR\fR
       
  1048 .ad
       
  1049 .RS 6n
       
  1050 .rt  
       
  1051 1 つのコマンドを読み取り、実行し、終了します。
       
  1052 .RE
       
  1053 
       
  1054 .sp
       
  1055 .ne 2
       
  1056 .mk
       
  1057 .na
       
  1058 \fB\fB-u\fR\fR
       
  1059 .ad
       
  1060 .RS 6n
       
  1061 .rt  
       
  1062 未設定の変数を置換時にエラーとして扱います。
       
  1063 .RE
       
  1064 
       
  1065 .sp
       
  1066 .ne 2
       
  1067 .mk
       
  1068 .na
       
  1069 \fB\fB-v\fR\fR
       
  1070 .ad
       
  1071 .RS 6n
       
  1072 .rt  
       
  1073 シェルへの入力行の読み取り時に、その内容を表示出力します。
       
  1074 .RE
       
  1075 
       
  1076 .sp
       
  1077 .ne 2
       
  1078 .mk
       
  1079 .na
       
  1080 \fB\fB-x\fR\fR
       
  1081 .ad
       
  1082 .RS 6n
       
  1083 .rt  
       
  1084 コマンドおよび引数の実行時に、その内容を表示出力します。
       
  1085 .RE
       
  1086 
       
  1087 .sp
       
  1088 .ne 2
       
  1089 .mk
       
  1090 .na
       
  1091 \fB\fB-\fR\fR
       
  1092 .ad
       
  1093 .RS 6n
       
  1094 .rt  
       
  1095 どのフラグも変更しません。\fB$1\fR に \fB-\fR を設定する際に便利です。
       
  1096 .RE
       
  1097 
       
  1098 \fB-\fR の代わりに \fB+\fR を使用すると、 これらのフラグは無効になります。これらのフラグはシェル起動時にも使用できます。現在セットされているフラグは、\fB$-\fR で見つけられます。残りの引数は定位置パラメータで、次の順に割り当てられます。\fB$1\fR、\fB$2\fR、. \|.\|. 引数が指定されない場合、すべての名前の値が出力されます。
       
  1099 .RE
       
  1100 
       
  1101 .sp
       
  1102 .ne 2
       
  1103 .mk
       
  1104 .na
       
  1105 \fB\fBshift\fR [ \fIn\fR ]\fR
       
  1106 .ad
       
  1107 .sp .6
       
  1108 .RS 4n
       
  1109 \fB$\fR\fIn\fR\fB+1\fR .\|.\|. から始まる一連の定位置パラメータを、次の名前に変更します。\fB$1\fR .\|.\|. 。 \fIn\fR を省略すると、1 と見なされます。
       
  1110 .RE
       
  1111 
       
  1112 .sp
       
  1113 .ne 2
       
  1114 .mk
       
  1115 .na
       
  1116 \fB\fBstop\fR \fIpid .\|.\|.\fR\fR
       
  1117 .ad
       
  1118 .sp .6
       
  1119 .RS 4n
       
  1120 \fIpid\fR (プロセス ID 番号) の実行を停止します (\fBps\fR(1) を参照)。
       
  1121 .RE
       
  1122 
       
  1123 .sp
       
  1124 .ne 2
       
  1125 .mk
       
  1126 .na
       
  1127 \fB\fBsuspend\fR\fR
       
  1128 .ad
       
  1129 .sp .6
       
  1130 .RS 4n
       
  1131 現在のシェルがログインシェルでない場合、その実行を中断します。
       
  1132 .RE
       
  1133 
       
  1134 .sp
       
  1135 .ne 2
       
  1136 .mk
       
  1137 .na
       
  1138 \fB\fBtest\fR\fR
       
  1139 .ad
       
  1140 .sp .6
       
  1141 .RS 4n
       
  1142 条件式を評価します。使用法と説明については、\fBtest\fR(1) を参照してください。
       
  1143 .RE
       
  1144 
       
  1145 .sp
       
  1146 .ne 2
       
  1147 .mk
       
  1148 .na
       
  1149 \fB\fBtimes\fR\fR
       
  1150 .ad
       
  1151 .sp .6
       
  1152 .RS 4n
       
  1153 シェルから実行されたプロセスの、 ユーザー時間およびシステム時間の累計値を表示します。
       
  1154 .RE
       
  1155 
       
  1156 .sp
       
  1157 .ne 2
       
  1158 .mk
       
  1159 .na
       
  1160 \fB\fBtrap\fR [ \fIargument\fR \fIn\fR [ \fIn2\fR .\|.\|. ]]\fR
       
  1161 .ad
       
  1162 .sp .6
       
  1163 .RS 4n
       
  1164 \fIargument\fR が示すコマンドを、シェルが数値または記号シグナル (\fIn\fR) を受信した時に読み取り実行します。(\fB注:\fR \fIargument\fR は、トラップ設定時に一度、トラップ取り出し時に一度検索されます。)トラップコマンドは、シグナル番号または対応するシンボリック名の順序で実行されます。現在のシェルへの入力時に無視されたシグナルにトラップを 設定しようとしても無効となります。シグナル 11 ( メモリフォールト ) にトラップを指定しようとすると、エラーになります。\fIargument\fR を省略すると、すべてのトラップ \fIn\fR は元の値に再設定されます。\fIargument\fR が NULL 文字列の場合、シェルおよびシェルが呼び出したコマンドは、このシグナルを無視します。\fIn\fR が 0 の場合、\fIargument\fR が示すコマンドはシェル終了時に実行されます。引数なしの \fBtrap\fR コマンドは、コマンドの一覧を各々が対応しているシグナル番号とともに表示します。
       
  1165 .RE
       
  1166 
       
  1167 .sp
       
  1168 .ne 2
       
  1169 .mk
       
  1170 .na
       
  1171 \fB\fBtype\fR [ \fIname\fR .\|.\|. ]\fR
       
  1172 .ad
       
  1173 .sp .6
       
  1174 .RS 4n
       
  1175 各 \fIname\fR ごとに、コマンド名として使用される場合に どのように解釈されるかを指示します。
       
  1176 .RE
       
  1177 
       
  1178 .sp
       
  1179 .ne 2
       
  1180 .mk
       
  1181 .na
       
  1182 \fB\fBulimit\fR [ [\fB-HS\fR] [\fB-a\fR | \fB-cdfnstv\fR] ]\fR
       
  1183 .ad
       
  1184 .br
       
  1185 .na
       
  1186 \fB\fBulimit\fR [ [\fB-HS\fR] [\fB-c\fR | \fB-d\fR | \fB-f\fR | \fB-n\fR | \fB-s\fR | \fB-t\fR | \fB- v\fR] ] \fBlimit\fR\fR
       
  1187 .ad
       
  1188 .sp .6
       
  1189 .RS 4n
       
  1190 \fBulimit\fR は、リソースの強い制限値または弱い制限値を 表示または設定します。これらの制限値については \fBgetrlimit\fR(2) の説明を参照してください。
       
  1191 .sp
       
  1192 \fIlimit\fR 引数を省略すると、\fBulimit\fR は指定されている制限値を表示します。制限値は一度にいくつでも表示できます。\fB-a\fR オプションは制限値すべてを表示します。
       
  1193 .sp
       
  1194 \fIlimit\fR 引数を指定すると、\fBulimit\fR は指定されたフラグに対応する制限値をその引数の値に設定します。\fI\fR文字列 \fBunlimited\fR は、現在の制限値 (ある場合) の削除を要求します。ユーザーはだれでも、強い制限値以下の値に弱い制限値を設定できます。ユーザーはだれでも、強い制限値を下げることができます。適切な特権を持ったユーザーだけが、強い制限値を上げたり、削除したりできます。\fBgetrlimit\fR(2) を参照してください。
       
  1195 .sp
       
  1196 \fB-H\fR オプションは強い制限値を表し、\fB-S\fR オプションは弱い制限値を表します。どちらのオプションも指定しない場合、\fBulimit\fR は両方の制限値を設定し、弱い制限値を表示します。
       
  1197 .sp
       
  1198 次のオプションは、制限値を表示または設定するリソースを指定します。オプションを一切指定しないと、ファイルサイズ限界値を表示または設定します。
       
  1199 .sp
       
  1200 .ne 2
       
  1201 .mk
       
  1202 .na
       
  1203 \fB\fB-c\fR\fR
       
  1204 .ad
       
  1205 .RS 6n
       
  1206 .rt  
       
  1207 最大 core ファイルサイズ (512 バイトブロック単位)
       
  1208 .RE
       
  1209 
       
  1210 .sp
       
  1211 .ne 2
       
  1212 .mk
       
  1213 .na
       
  1214 \fB\fB-d\fR\fR
       
  1215 .ad
       
  1216 .RS 6n
       
  1217 .rt  
       
  1218 データセグメントまたはヒープの最大サイズ (K バイト単位)
       
  1219 .RE
       
  1220 
       
  1221 .sp
       
  1222 .ne 2
       
  1223 .mk
       
  1224 .na
       
  1225 \fB\fB-f\fR\fR
       
  1226 .ad
       
  1227 .RS 6n
       
  1228 .rt  
       
  1229 最大ファイルサイズ (512 バイトブロック単位)
       
  1230 .RE
       
  1231 
       
  1232 .sp
       
  1233 .ne 2
       
  1234 .mk
       
  1235 .na
       
  1236 \fB\fB-n\fR\fR
       
  1237 .ad
       
  1238 .RS 6n
       
  1239 .rt  
       
  1240 最大ファイル記述子プラス 1
       
  1241 .RE
       
  1242 
       
  1243 .sp
       
  1244 .ne 2
       
  1245 .mk
       
  1246 .na
       
  1247 \fB\fB-s\fR\fR
       
  1248 .ad
       
  1249 .RS 6n
       
  1250 .rt  
       
  1251 スタックセグメントの最大サイズ (K バイト単位)
       
  1252 .RE
       
  1253 
       
  1254 .sp
       
  1255 .ne 2
       
  1256 .mk
       
  1257 .na
       
  1258 \fB\fB-t\fR\fR
       
  1259 .ad
       
  1260 .RS 6n
       
  1261 .rt  
       
  1262 最大 CPU 時間 (秒単位)
       
  1263 .RE
       
  1264 
       
  1265 .sp
       
  1266 .ne 2
       
  1267 .mk
       
  1268 .na
       
  1269 \fB\fB-v\fR\fR
       
  1270 .ad
       
  1271 .RS 6n
       
  1272 .rt  
       
  1273 仮想メモリーの最大サイズ (K バイト単位)
       
  1274 .RE
       
  1275 
       
  1276 システムで利用可能な最大上限値を 調べるには \fBsysdef\fR(1M) コマンドを実行してください。表示される値は 16 進数ですが、\fBbc\fR(1) コマンドを使って 10 進数に変換できます。\fBswap\fR(1M) を参照してください。)
       
  1277 .sp
       
  1278 たとえば、0M バイトにコアファイルダンプのサイズを制限するには次のように入力します。\fB\fR
       
  1279 .sp
       
  1280 .in +2
       
  1281 .nf
       
  1282 \fBulimit -c 0\fR
       
  1283 .fi
       
  1284 .in -2
       
  1285 .sp
       
  1286 
       
  1287 .RE
       
  1288 
       
  1289 .sp
       
  1290 .ne 2
       
  1291 .mk
       
  1292 .na
       
  1293 \fB\fBumask\fR [ \fInnn\fR ]\fR
       
  1294 .ad
       
  1295 .sp .6
       
  1296 .RS 4n
       
  1297 ユーザーファイル作成マスクを \fInnn\fR が示す値に設定します (\fBumask\fR(1) を参照)。\fInnn\fR を省略すると、マスクの現在の値を出力します。
       
  1298 .RE
       
  1299 
       
  1300 .sp
       
  1301 .ne 2
       
  1302 .mk
       
  1303 .na
       
  1304 \fB\fBunset\fR [ \fIname\fR .\|.\|. ]\fR
       
  1305 .ad
       
  1306 .sp .6
       
  1307 .RS 4n
       
  1308 \fIname\fR ごとに、対応する変数または関数値を削除します。変数 \fBPATH\fR、\fBPS1\fR、\fBPS2\fR、\fBMAILCHECK\fR、および \fBIFS\fR は設定解除できません。
       
  1309 .RE
       
  1310 
       
  1311 .sp
       
  1312 .ne 2
       
  1313 .mk
       
  1314 .na
       
  1315 \fB\fBwait\fR [ \fIn\fR ]\fR
       
  1316 .ad
       
  1317 .sp .6
       
  1318 .RS 4n
       
  1319 当該ユーザーのバックグラウンドプロセスのうち ID が \fIn\fR のプロセスを待ち、その終了ステータスを報告します。\fIn\fR が省略された場合、当該ユーザーの現在活動中のすべてのバックグラウンドプロセスを待ち、リターンコードは 0 になります。
       
  1320 .RE
       
  1321 
       
  1322 .SS "呼び出し"
       
  1323 .sp
       
  1324 .LP
       
  1325 \fBexec\fR(2) を介してシェルが呼び出される場合で、引数 0 の先頭文字が \fB\(mi\fR のとき、コマンドは、まず \fB/etc/profile\fR から読み込まれ、次に \fB$HOME/.profile\fR から読み込まれます (これらのファイルがある場合)。その後、コマンドは後述のように読み込まれます。シェルが \fB/usr/bin/sh\fR として呼び出される場合にも、このようになります。以下に述べるフラグは、呼び出し時にのみ、シェルによって解釈されます。\fBなお \fR \fB-c\fR または \fB-s\fR フラグが指定されないかぎり、先頭引数はコマンドを含むファイルの名前であるとみなされ、残りの引数は定位置パラメータとして そのコマンドファイルに引き渡されます。
       
  1326 .sp
       
  1327 .ne 2
       
  1328 .mk
       
  1329 .na
       
  1330 \fB\fB-c\fR\fI\| string\fR\fR
       
  1331 .ad
       
  1332 .RS 15n
       
  1333 .rt  
       
  1334 このフラグが指定されると、\fIstring\fR からコマンドを読み取ります。\fB-\fR
       
  1335 .RE
       
  1336 
       
  1337 .sp
       
  1338 .ne 2
       
  1339 .mk
       
  1340 .na
       
  1341 \fB\fB-i\fR\fR
       
  1342 .ad
       
  1343 .RS 15n
       
  1344 .rt  
       
  1345 このフラグが指定された場合あるいはシェル入出力が端末に接続されている場合、このシェルは対話型となります。\fB-\fR\fB\fRこの場合、\fBkill 0\fR が対話型シェルを終了しないように TERM を無視し、\fBwait\fR が割り込み可能になるように INTERRUPT を捕え、無視します。いずれの場合も、シェルは QUIT を無視します。
       
  1346 .RE
       
  1347 
       
  1348 .sp
       
  1349 .ne 2
       
  1350 .mk
       
  1351 .na
       
  1352 \fB\fB-p\fR\fR
       
  1353 .ad
       
  1354 .RS 15n
       
  1355 .rt  
       
  1356 \fB-p\fR フラグが指定されると、シェルは実効ユーザーおよびグループ ID に、実ユーザーおよびグループ ID を設定しません。
       
  1357 .RE
       
  1358 
       
  1359 .sp
       
  1360 .ne 2
       
  1361 .mk
       
  1362 .na
       
  1363 \fB\fB-r\fR\fR
       
  1364 .ad
       
  1365 .RS 15n
       
  1366 .rt  
       
  1367 \fB-r\fR フラグを指定すると、シェルは制限付きシェルになります (\fBrsh\fR(1M) を参照)。
       
  1368 .RE
       
  1369 
       
  1370 .sp
       
  1371 .ne 2
       
  1372 .mk
       
  1373 .na
       
  1374 \fB\fB-s\fR\fR
       
  1375 .ad
       
  1376 .RS 15n
       
  1377 .rt  
       
  1378 このフラグが指定された場合または引数が残っていない場合、標準入力からコマンドを読み取ります。\fB-\fR引数が残っていれば、それらは定位置パラメータを指定します。前述の特殊コマンドの出力を除くシェル出力は、ファイル記述子 2 に書き込まれます。\fB\fR
       
  1379 .RE
       
  1380 
       
  1381 .sp
       
  1382 .LP
       
  1383 他のフラグと引数については、前述の \fBset\fR コマンドの箇所で説明されています。
       
  1384 .SS "ジョブ制御 (jsh)"
       
  1385 .sp
       
  1386 .LP
       
  1387 シェルを \fBjsh\fR として呼び出すと、\fBsh\fR の説明で述べたすべての機能に加えて、ジョブ制御が可能になります。通常、ジョブ制御は対話型シェルに対してだけ可能です。非対話型シェルは、ジョブ制御の機能が追加されても、その恩恵を受けないのが通常です。
       
  1388 .sp
       
  1389 .LP
       
  1390 ジョブ制御が可能な場合、ユーザーが端末から入力したコマンドまたはパイプラインは、すべてジョブ ( \fIjob\fR) と呼ばれます。どのジョブも、必ず次のいずれかの状態にあります。 フォアグラウンド、バックグラウンド、または停止です。これらの用語の定義を次に示します。
       
  1391 .RS +4
       
  1392 .TP
       
  1393 1.
       
  1394 フォアグラウンド状態にある ジョブは、制御している端末への読み取り および書き込み権を持っています。
       
  1395 .RE
       
  1396 .RS +4
       
  1397 .TP
       
  1398 2.
       
  1399 バックグラウンド状態にあるジョブは、制御している端末への読み取り権を拒否されていますが、条件付き書き込み権は持っています (\fBstty\fR(1) を参照)。
       
  1400 .RE
       
  1401 .RS +4
       
  1402 .TP
       
  1403 3.
       
  1404 停止ジョブは保留状態に置かれた ジョブであり、通常は \fBSIGTSTP\fR シグナルにより、この状態になります (\fBsignal.h\fR(3HEAD) を参照)。
       
  1405 .RE
       
  1406 .sp
       
  1407 .LP
       
  1408 シェルが起動するすべてのジョブには、ジョブ番号 (\fIjob number\fR) と呼ばれる正の整数が割り当てられます。シェルはこの番号を把握し、特定のジョブを示す識別子として使用します。また、シェルは現在 (\fIcurrent\fR) および直前 (\fIprevious\fR) のジョブも把握しています。現在のジョブとは、最後に起動または再起動されたジョブです。\fI\fR前回のジョブとは、その直前のジョブです。\fI\fR
       
  1409 .sp
       
  1410 .LP
       
  1411 ジョブ識別子の正しい構文は次のような形式です。
       
  1412 .sp
       
  1413 .LP
       
  1414 \fB%\fR\fIjobid\fR
       
  1415 .sp
       
  1416 .LP
       
  1417 このうち \fIjobid\fR は、次のいずれかの形式で指定できます。
       
  1418 .sp
       
  1419 .ne 2
       
  1420 .mk
       
  1421 .na
       
  1422 \fB\fB%\fR または \fB+\fR\fR
       
  1423 .ad
       
  1424 .RS 17n
       
  1425 .rt  
       
  1426 現在のジョブ
       
  1427 .RE
       
  1428 
       
  1429 .sp
       
  1430 .ne 2
       
  1431 .mk
       
  1432 .na
       
  1433 \fB\fB\(mi\fR\fR
       
  1434 .ad
       
  1435 .RS 17n
       
  1436 .rt  
       
  1437 前回のジョブ
       
  1438 .RE
       
  1439 
       
  1440 .sp
       
  1441 .ne 2
       
  1442 .mk
       
  1443 .na
       
  1444 \fB\fB?\fR\fI<string>\fR\fR
       
  1445 .ad
       
  1446 .RS 17n
       
  1447 .rt  
       
  1448 コマンド行が \fIstring\fR を含んでいるジョブ
       
  1449 .RE
       
  1450 
       
  1451 .sp
       
  1452 .ne 2
       
  1453 .mk
       
  1454 .na
       
  1455 \fB\fIn\fR\fR
       
  1456 .ad
       
  1457 .RS 17n
       
  1458 .rt  
       
  1459 ジョブ番号が \fIn\fR のジョブ
       
  1460 .RE
       
  1461 
       
  1462 .sp
       
  1463 .ne 2
       
  1464 .mk
       
  1465 .na
       
  1466 \fB\fIpref\fR\fR
       
  1467 .ad
       
  1468 .RS 17n
       
  1469 .rt  
       
  1470 コマンド名の先頭が \fIpref\fR のコマンド。たとえば \fBls\fR \fB-l\fR \fIname\fR がバックグラウンドで実行中だった場合、\fB%ls\fR と指定すればこのコマンドを示すことができます。\fIpref\fR は、クォートしない限り、ブランクを含めることができません。
       
  1471 .RE
       
  1472 
       
  1473 .sp
       
  1474 .LP
       
  1475 ジョブ制御が可能なとき、ジョブの操作用に 次のコマンドがユーザー環境に追加されます。
       
  1476 .sp
       
  1477 .ne 2
       
  1478 .mk
       
  1479 .na
       
  1480 \fB\fBbg\fR [\fB%\fR\fIjobid .\|.\|.\fR]\fR
       
  1481 .ad
       
  1482 .sp .6
       
  1483 .RS 4n
       
  1484 停止状態のジョブをバックグラウンドで再び実行します。\fB%\fR\fIjobid\fR を省略すると、現在のジョブとみなされます。
       
  1485 .RE
       
  1486 
       
  1487 .sp
       
  1488 .ne 2
       
  1489 .mk
       
  1490 .na
       
  1491 \fB\fBfg\fR [\fB%\fR\fIjobid .\|.\|.\fR]\fR
       
  1492 .ad
       
  1493 .sp .6
       
  1494 .RS 4n
       
  1495 停止状態のジョブをフォアグラウンドで再び実行します。また、実行中のバックグラウンドジョブをフォアグラウンドへ移します。\fB%\fR\fIjobid\fR を省略すると、現在のジョブとみなされます。
       
  1496 .RE
       
  1497 
       
  1498 .sp
       
  1499 .ne 2
       
  1500 .mk
       
  1501 .na
       
  1502 \fB\fBjobs\fR [\fB-p\fR|\fB-l\fR] [\fB%\fR\fIjobid .\|.\|.\fR]\fR
       
  1503 .ad
       
  1504 .br
       
  1505 .na
       
  1506 \fB\fBjobs\fR \fB-x\fR \fBcommand\fR [\fIarguments\fR]\fR
       
  1507 .ad
       
  1508 .sp .6
       
  1509 .RS 4n
       
  1510 停止中またはバックグラウンドで実行中の すべてのジョブを報告します。\fB%\fR\fIjobid\fR を省略すると、停止中またはバックグラウンドで稼動中のすべてのジョブが報告されます。次のオプションは、\fBjobs\fR の出力を変更または拡張するために使用します。 
       
  1511 .sp
       
  1512 .ne 2
       
  1513 .mk
       
  1514 .na
       
  1515 \fB\fB-l\fR\fR
       
  1516 .ad
       
  1517 .RS 6n
       
  1518 .rt  
       
  1519 ジョブのプロセスグループ ID および作業ディレクトリを報告します。
       
  1520 .RE
       
  1521 
       
  1522 .sp
       
  1523 .ne 2
       
  1524 .mk
       
  1525 .na
       
  1526 \fB\fB-p\fR\fR
       
  1527 .ad
       
  1528 .RS 6n
       
  1529 .rt  
       
  1530 ジョブのプロセスグループ ID のみを報告します。
       
  1531 .RE
       
  1532 
       
  1533 .sp
       
  1534 .ne 2
       
  1535 .mk
       
  1536 .na
       
  1537 \fB\fB-x\fR\fR
       
  1538 .ad
       
  1539 .RS 6n
       
  1540 .rt  
       
  1541 コマンドまたは引数中に見つかった \fIjobid\fR を、対応するプロセスグループ ID に置き換え、コマンドに引数を渡して実行します。\fI\fR\fI\fR\fI\fR\fI\fR
       
  1542 .RE
       
  1543 
       
  1544 .RE
       
  1545 
       
  1546 .sp
       
  1547 .ne 2
       
  1548 .mk
       
  1549 .na
       
  1550 \fB\fBkill\fR [ \fB-signal\fR ] \fB%\fR\fIjobid\fR\fR
       
  1551 .ad
       
  1552 .sp .6
       
  1553 .RS 4n
       
  1554 \fBkill\fR コマンドの組み込みバージョン。\fBjobid\fR で示すプロセスに対して \fIkill\fR コマンドの機能を提供します。
       
  1555 .RE
       
  1556 
       
  1557 .sp
       
  1558 .ne 2
       
  1559 .mk
       
  1560 .na
       
  1561 \fB\fBstop\fR \fB%\fR\fIjobid .\|.\|.\fR\fR
       
  1562 .ad
       
  1563 .sp .6
       
  1564 .RS 4n
       
  1565 バックグラウンドジョブの実行を停止します。
       
  1566 .RE
       
  1567 
       
  1568 .sp
       
  1569 .ne 2
       
  1570 .mk
       
  1571 .na
       
  1572 \fB\fBsuspend\fR\fR
       
  1573 .ad
       
  1574 .sp .6
       
  1575 .RS 4n
       
  1576 現在のシェルがログインシェルでない場合、その実行を中断します。
       
  1577 .RE
       
  1578 
       
  1579 .sp
       
  1580 .ne 2
       
  1581 .mk
       
  1582 .na
       
  1583 \fB\fBwait\fR [\fB%\fR\fIjobid .\|.\|.\fR]\fR
       
  1584 .ad
       
  1585 .sp .6
       
  1586 .RS 4n
       
  1587 \fBwait\fR コマンドの組み込みバージョンで、ジョブ識別子の指定を受け入れます。\fB%\fR\fIjobid\fR が省略された場合、\fBwait\fR は、前述の「特殊コマンド」で説明したように動作します。\fB\fR
       
  1588 .RE
       
  1589 
       
  1590 .SS "大規模ファイルの動作"
       
  1591 .sp
       
  1592 .LP
       
  1593 ファイルが 2G バイト (2^31 バイト) 以上ある場合の \fBsh\fR と \fBjsh\fR の動作については、\fBlargefile\fR(5) を参照してください。
       
  1594 .SH 終了ステータス
       
  1595 .sp
       
  1596 .LP
       
  1597 構文エラーなどのエラーを検出すると、シェルは 0 以外の終了ステータスを返します。シェルを非対話型で使用している場合、シェルファイルの実行は中止されます。そうでない場合は、シェルは最後に実行されたコマンドの 終了ステータスを返します ( 前述の \fBexit\fR コマンドの説明を参照 ) 。
       
  1598 .SS "jsh のみ"
       
  1599 .sp
       
  1600 .LP
       
  1601 シェルが \fBjsh\fR として呼び出された場合、停止ジョブがあるのにシェルを終了させようとすると、シェルは次のような警告を出します。
       
  1602 .sp
       
  1603 .LP
       
  1604 \fBThere are stopped jobs.\fR
       
  1605 .sp
       
  1606 .LP
       
  1607 これが唯一のメッセージです。もう一度終了が試みられ、停止ジョブがまだ存在している場合、これらのジョブにカーネルから \fBSIGHUP\fR シグナルが送られ、シェルは終了します。
       
  1608 .SH ファイル
       
  1609 .sp
       
  1610 .LP
       
  1611 \fB$HOME/.profile\fR
       
  1612 .sp
       
  1613 .LP
       
  1614 \fB/dev/null\fR
       
  1615 .sp
       
  1616 .LP
       
  1617 \fB/etc/profile\fR
       
  1618 .sp
       
  1619 .LP
       
  1620 \fB/tmp/sh*\fR
       
  1621 .SH 属性
       
  1622 .sp
       
  1623 .LP
       
  1624 属性についての詳細は、\fBattributes\fR(5) を参照してください。
       
  1625 .SS "/usr/bin/sh, /usr/bin/jsh"
       
  1626 .sp
       
  1627 
       
  1628 .sp
       
  1629 .TS
       
  1630 tab() box;
       
  1631 cw(2.75i) |cw(2.75i) 
       
  1632 lw(2.75i) |lw(2.75i) 
       
  1633 .
       
  1634 属性タイプ属性値
       
  1635 _
       
  1636 使用条件system/core-os
       
  1637 _
       
  1638 CSI有効
       
  1639 .TE
       
  1640 
       
  1641 .SS "/usr/xpg4/bin/sh"
       
  1642 .sp
       
  1643 
       
  1644 .sp
       
  1645 .TS
       
  1646 tab() box;
       
  1647 cw(2.75i) |cw(2.75i) 
       
  1648 lw(2.75i) |lw(2.75i) 
       
  1649 .
       
  1650 属性タイプ属性値
       
  1651 _
       
  1652 使用条件system/core-os
       
  1653 _
       
  1654 CSI有効
       
  1655 .TE
       
  1656 
       
  1657 .SH 関連項目
       
  1658 .sp
       
  1659 .LP
       
  1660 \fBIntro\fR(1), \fBbc\fR(1), \fBecho\fR(1), \fBgetoptcvt\fR(1), \fBkill\fR(1), \fBksh88\fR(1), \fBlogin\fR(1), \fBnewgrp\fR(1), \fBpfsh\fR(1), \fBpfexec\fR(1), \fBps\fR(1), \fBpwd\fR(1), \fBset\fR(1), \fBshell_builtins\fR(1), \fBstty\fR(1), \fBtest\fR(1), \fBumask\fR(1), \fBwait\fR(1), \fBrsh\fR(1M), \fBsu\fR(1M), \fBswap\fR(1M), \fBsysdef\fR(1M), \fBdup\fR(2), \fBexec\fR(2), \fBfork\fR(2), \fBgetrlimit\fR(2), \fBpipe\fR(2), \fBulimit\fR(2), \fBsetlocale\fR(3C), \fBsignal.h\fR(3HEAD), \fBpasswd\fR(4), \fBprofile\fR(4), \fBattributes\fR(5), \fBenviron\fR(5), \fBlargefile\fR(5), \fBXPG4\fR(5)
       
  1661 .SH 警告
       
  1662 .sp
       
  1663 .LP
       
  1664 シェルスクリプトを \fBsetuid\fR して使用することは避けてください。\fB\fR
       
  1665 .SH 注意事項
       
  1666 .sp
       
  1667 .LP
       
  1668 入出力のリダイレクションでファイル名に使用されたワードは、ファイル名生成では解釈されません (前述の「ファイル名の生成」の節を参照)。\fB\fRたとえば \fBcat file1 >a*\fR という指定は、\fBa*\fR という名前のファイルを生成します。
       
  1669 .sp
       
  1670 .LP
       
  1671 パイプラインにあるコマンド群は それぞれ別個のプロセスとして稼動するので、パイプラインに設定された変数は親シェルには何の影響も与えません。
       
  1672 .sp
       
  1673 .LP
       
  1674 \fBwhile\fR ループまたは \fBuntil\fR ループの入力または出力をリダイレクトする場合、ループ内のコマンドはサブシェルで実行されます。サブシェル内で設定または変更された変数は、親プロセスでは効力を失います。
       
  1675 .sp
       
  1676 .in +2
       
  1677 .nf
       
  1678    lastline=
       
  1679    while read line
       
  1680    do
       
  1681 
       
  1682            lastline=$line
       
  1683    done < /etc/passwd
       
  1684    echo "lastline=$lastline"       # lastline is empty!
       
  1685 .fi
       
  1686 .in -2
       
  1687 .sp
       
  1688 
       
  1689 .sp
       
  1690 .LP
       
  1691 このような場合、入力または出力をリダイレクトするには、次の例のように \fBexec\fR を使用します。
       
  1692 .sp
       
  1693 .in +2
       
  1694 .nf
       
  1695    # Save standard input (file descriptor 0) as file
       
  1696    # descriptor 3, and redirect standard input from the file
       
  1697    /etc/passwd:
       
  1698 
       
  1699    exec 3<&0               # save standard input as fd 3
       
  1700    exec </etc/passwd       # redirect input from file
       
  1701 
       
  1702    lastline=
       
  1703    while read line
       
  1704    do
       
  1705            lastline=$line
       
  1706    done
       
  1707 
       
  1708    exec 0<&3               # restore standard input
       
  1709    exec 3<&-               # close file descriptor 3
       
  1710    echo "$lastline"        # lastline
       
  1711 .fi
       
  1712 .in -2
       
  1713 .sp
       
  1714 
       
  1715 .sp
       
  1716 .LP
       
  1717 \fBcannot fork, too many processes\fR というエラーメッセージを受け取った場合には、\fBwait\fR(1) コマンドを用いてユーザーのバックグラウンドプロセスをクリーンアップしてください。これを行なっても問題が解決しない場合には、システムのプロセステーブルが一杯になっていること、または実行中のフォアグラウンドプロセスの数が多すぎることが考えられます。ユーザーログインに結合するプロセス ID の数、およびシステムが把握できる数には 限度があります。
       
  1718 .sp
       
  1719 .LP
       
  1720 パイプラインの最後のプロセスだけが、待つ対象になり得ます。
       
  1721 .sp
       
  1722 .LP
       
  1723 あるコマンドを実行し、そのあとで同一名のコマンドが、検索パスにおいて元のコマンドがあるディレクトリの前に位置するディレクトリにインストールされた場合、シェルは元のコマンドの方を実行し続けます。\fB\fR新しい方のコマンドを実行させたければ、\fBhash\fR コマンドを使用してください。
       
  1724 .sp
       
  1725 .LP
       
  1726 Bourne シェルにはプロセスの実効ユーザー \fBID\fR に対して制限があります。このユーザー ID が 100 よりも小さい (さらにプロセスの実ユーザー ID と同等ではない) 場合には、ユーザー ID はプロセスの実ユーザー ID にリセットされます。\fB\fR\fB\fR
       
  1727 .sp
       
  1728 .LP
       
  1729 同じプロセスグループで フォアグラウンドジョブと バックグラウンドジョブの両方を シェルが実行しているため、ジョブは同じシグナルを受け取り、予期しない結果を招くことがあります。したがって、特に対話型のシェルを動作している場合は、他のジョブ制御のシェルを使用することを おすすめします。
       
  1730 .sp
       
  1731 .LP
       
  1732 存在しないコマンドのインタプリタを実行しようとするシェルスクリプトを、シェルが処理した場合、シェルはシェルスクリプトが存在しないという間違った診断メッセージを 返します。