日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
ENV(1) FreeBSD 一般コマンドマニュアル ENV(1) 名称 env -- 環境変数を設定してコマンドを実行するか、または環境変数を印刷 (表 示) する 書式 env [-iv] [-P altpath] [-S string] [-u name] [name=value ...] [utility [argument ...]] 解説 env ユーティリティは、コマンド行で指定されるように環境変数を修正した後 に、別の utility を実行します。各 name=value オプションは、value の値があ る環境変数、name の設定を指定します。そのようなすべての環境変数は、 utility が実行される前に、設定されます。 オプションは、次の通りです: -i name=value オプションによって指定される、それらの環境変数のみで utility を実行します。env によって継承された環境変数は、完全に無 視されます。 -P altpath PATH 環境変数の値を使用する代わりに、指定された utility プログラ ムを位置を見つけるために、altpath によって指定されるように一連の ディレクトリを検索します。 -S string 与えられた string (文字列) を複数の文字列に分割し、env ユーティリ ティに個別の引数として、結果の文字列のそれぞれを処理します。-S オ プションは、以下に説明されるように、いくつかの特殊な文字のエス ケープシーケンスを認識し、環境変数の置換もサポートします。 -u name 環境変数 name が環境にあるなら、残りのオプションを処理する前に、 それを削除します。これは、sh(1) の unset コマンドと同様です。name のための値は、`=' 文字を含んではいけません。 -v env ユーティリティによって行なわれる処理のステップごとに冗長な情 報を印刷 (表示) します。追加の情報は、-v が、複数回指定されるな ら、印刷 (表示) されます。 上記のオプションは、あらゆる name=value オプションの前に、それらが指定さ れるときのみ認識されます。 utility が指定されないなら、env は、1 行ごとに 1 つの名前/値ペアで環境の 変数の名前と値を印刷 (表示) します。 -S Ss (文字列分割) 処理の詳細 -S オプションの処理は、string に見つけられるあらゆる空白または <タブ> 文 字に基づいて、与えられた string を個別の引数に分割します。次に、それらの 新しい引数のそれぞれは、あたかもそれがオリジナルの env コマンドの個別の引 数として指定されたかのように、取り扱われます。 空白とタブは、単一の (``''') またはダブルクォート (`"') またはバックス ラッシュ (`\') を使用することによって、それらの新しい引数の 1 つに埋め込 むことができます。シングルクォートは、一致しているシングルクォートまで、 すべてのシングルクォートでない文字をエスケープします。ダブルクォートは、 一致しているダブルクォートまで、すべてのダブルクォートでない文字をエス ケープします。一致しているクォート文字の前に、string の終わりに到達するな ら、それは、エラーです。 -S が、`#' 文字で始まる新しい引数を作成するなら、string のその引数と残り は、無視されます。利用者は、新しい引数が `#' 文字で始まってほしいとき、 string の残りをスキップせずに、`\#' シーケンスを使用することができます。 string 値を処理している間に、-S 処理は、何らかのアクションを取るために表 されるエスケープシーケンスとして特定の文字の組み合わせを処理します。文字 エスケープシーケンスは、バックスラッシュ表記法です。文字とそれらの意味 は、次の通りです: \c string の残りの文字を無視します。これは、ダブルクォートの文 字列の内側に現れてはいけません。 \f <フォームフィード> 文字で置き換えます。 \n <復帰改行> 文字で置き換えます。 \r <キャリッジリターン> 文字で置き換えます。 \t <タブ> 文字で置き換えます。 \v <垂直タブ> 文字で置き換えます。 \# `#' 文字で置き換えます。利用者が、与えられた string を分割 することによって作成された引数の 1 つの最初の文字として `#' を必要とするとき、これは、役に立ちます。 \$ `$' 文字で置き換えます。 \_ これが、ダブルクォートの文字列の内側で見つけられるなら、そ れを単一の空白で置き換えます。これが、クォートされた文字列 の外側で見つけられるなら、オリジナルの string の新しい引数 の間のセパレータ文字として、これを処理します。 \" <ダブルクォート> 文字で置き換えます。 \' <シングルクォート> 文字で置き換えます。 \\ バックスラッシュ文字で置き換えます。 <シングルクォート> とバックスラッシュのためのシーケンスは、シングルクォー トで囲まれた文字列の内側で認識される唯一のシーケンスです。他のシーケンス には、シングルクォートで囲まれた文字列の内側で特別な意味がありません。す べてのエスケープシーケンスは、ダブルクォートで囲まれた文字列の内側で認識 されます。単一の `\' 文字が上記にリストされたもの以外の文字が続くなら、そ れは、エラーです。 また -S の処理は、環境変数の値の置き換えをサポートします。これを行なうた めに、環境変数の名前は、次のように、`${}' の内側になければなりません: ${SOMEVAR}。$SOMEVAR の共通のシェル構文は、サポートされていません。置換さ れたすべての値は、env ユーティリティが最初に呼び出されたとき、それらのよ うな環境変数の値となります。それらの値は、上記の説明のようなエスケープ シーケンスのいずれかに対してチェックされません。そして、name=value のあら ゆる設定は、-S 処理の置換のために使用される値に影響されません。 また、ほとんどのシェルによって定義された特別なパラメータの値で、-S 処理を 参照することはできません。例えば、-S は、次のような特別なパラメータを認識 することはできません: `*$'、`@$'、`$#'、`?$' または、与えられた string の 内側にそれらが現れるなら、`$*', `$@', `$#', `$?' または `$$'。 シェルスクリプトでの使用 env ユーティリティは、execve(2) で説明されるように、解釈されるスクリプト の最初の行で interpreter (インタプリタ) としてしばしば使用されます。 解釈されるスクリプトの (最初の行) の `#!' をカーネルが解析する方法は、 FreeBSD 6.0 現在変更されたことに注意してください。それに先だって、FreeBSD カーネルは、行で見つかるあらゆる空白類 (空白または <タブ> 文字) に基づい てその最初の行を個別の引数に分割しますしたがって、/usr/local/bin/someport と名前が付けられたスクリプトには、次の最初の行があります: #!/usr/local/bin/php -n -q -dsafe_mode=0 次に /usr/local/bin/php プログラムは、次の引数で開始されます: arg[0] = '/usr/local/bin/php' arg[1] = '-n' arg[2] = '-q' arg[3] = '-dsafe_mode=0' arg[4] = '/usr/local/bin/someport' someport を実行するときユーザに指定されたあらゆる引数を追加します。しかし ながら、`#!' 行の複数のオプションの処理は、あらゆる他のオペレーティングシ ステムが解釈されるスクリプトの最初の行を解析する方法ではありません。した がって FreeBSD 6.0 リリースのために行なわれた変更の後に、そのスクリプト は、次の引数で開始される /usr/local/bin/php の結果となります: arg[0] = '/usr/local/bin/php' arg[1] = '-n -q -dsafe_mode=0' arg[2] = '/usr/local/bin/someport' ユーザに指定されたあらゆる引数を追加します。これは、わずかのスクリプトの 振る舞いで重要な変化を引き起こします。上記のスクリプトの場合に、以前のリ リースの下で行なわれたように、FreeBSD 6.0 の下で同じ方法で振る舞うため に、最初の行は、次のように変更されるべきです: #!/usr/bin/env -S /usr/local/bin/php -n -q -dsafe_mode=0 env ユーティリティは、単一の引数として全体の行で開始されます: arg[1] = '-S /usr/local/bin/php -n -q -dsafe_mode=0' それから、-S 処理は、/usr/local/bin/php を実行する前に、その行を個別の引 数に分割します。 環境変数 env ユーティリティは、名前に `/' 文字が含まれず、-P オプションが指定され ないなら、要求された utility を位置を見つけるために、PATH 環境変数を使用 します。 終了ステータス ユーティリティ env は、成功すると 0 で、エラーがあった場合は >0 で終了し ます。126 の終了ステータスは、utility が見つけられましたが、実行されな かったことを示します。127 の終了ステータスは、utility が見つけられなかっ たことを示します。 使用例 env ユーティリティは、しばしば、解釈されたスクリプトの最初の行の一部とし て使用されるので、次の例は、スクリプトで env ユーティリティを役に立てるこ とができる、多くの方法を表示します。 解釈されたスクリプトのカーネル処理は、スクリプトがそれ自体のインタプリタ としていくつかの他のスクリプトを直接参照することができません。これを回避 する方法として、 #!/usr/local/bin/foo と #!/usr/bin/env /usr/local/bin/foo の間の主要な違いは、たとえ /usr/local/bin/foo が解釈されたスクリプト自体 であっても後者が動作します。 たぶん、env の最も一般的な使用は、インタプリタが異なったシステムの異なっ たディレクトリにあるかもしれないとき、スクリプトのために正しいインタプリ タを見つけることです。次の例は、PATH によって指定されたディレクトリを通し て検索することによって `perl' インタプリタを見つけます。 #!/usr/bin/env perl その例の 1 つの制限は、利用者が実行したいインタプリタを見つける値に設定さ れる PATH のためのユーザの値を仮定することです。ディレクトリの特有なリス トが utility のための検索で使用されることを確かめるために -P オプションを 使用することができます。また、-S オプションは、この例が正しく動作する必要 があることに注意してください。 #!/usr/bin/env -S -P/usr/local/bin:/usr/bin perl 上記は、それが、/usr/local/bin または /usr/bin である場合のみ `perl' を見 つけます。それは、より多くの柔軟性を提供するために PATH の現在の値と組み 合わされます。-S と -P オプションの間に空白が必要ではないことに注意してく ださい: #!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} perl 互換性 env ユーティリティは、-i の同義語として - オプションを受け付けます。 関連項目 printenv(1), sh(1), execvp(3), environ(7) 規格 env ユーティリティは、IEEE Std 1003.1-2001 (``POSIX.1'') に適合していま す。-P, -S, -u と -v オプションは、FreeBSD によってサポートされる標準でな い拡張ですが、他のオペレーティングシステムで利用可能ではないかもしれませ ん。 歴史 env コマンドは、4.4BSD で登場しました。-P, -S と -v オプションは、 FreeBSD 6.0 で追加されました。 バグ env ユーティリティは、明白な理由のために、それらの名前に等号 (`=') がある utility の値を処理しません。 env ユーティリティは、いくつかのロケールで不正確な結果をもたらすかもしれ ない、-S オプションを処理するとき、マルチバイト文字を考慮に入れません。 FreeBSD 12.1 April 17, 2008 FreeBSD 12.1