Scroll to navigation

ENV(1) ユーザーコマンド ENV(1)

名前

env - 変更した環境でプログラムを実行する

書式

env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]

説明

環境変数 NAME を VALUE に設定し、 COMMAND を実行します。

長いオプションで必須となっている引数は短いオプションでも必須です。

環境変数がない状態で開始する
-0, --null
出力行の区切りとして改行文字ではなく NUL を使用する
環境変数から指定した変数を削除する
作業ディレクトリを DIR に変更する
S を個々の引数に分割する; shebang 行で複数の引数を渡すのに使用される
シグナル SIG の COMMAND への配送をブロックする
シグナル SIG の処理をデフォルトにリセットする
シグナル SIG の処理を何もしないに設定する
シグナルの処理がデフォルトと異なるものを標準エラーに表示する
処理ステップ毎に詳しい情報を表示する
使い方を表示して終了する
バージョン情報を表示して終了する

- だけを指定した場合は -i を指定したことになります。 COMMAND が指定されなければ最終的な環境変数を表示します。

SIG には、 'PIPE' のようなシグナル名、 '13' のようなシグナル番号指定できます。 SIG が指定されなかった場合、既知のすべてのシグナルが対象となります。 複数のシグナルをコンマ区切りで指定できます。

GNU coreutils のオンラインヘルプ: <https://www.gnu.org/software/coreutils/> 翻訳に関するバグは <https://translationproject.org/team/ja.html> に連絡してください。 詳細な文書 <https://www.gnu.org/software/coreutils/env> (ローカルでは info '(coreutils) env invocation' で参照可能)。

オプション

スクリプトでの -S/--split-string の使い方

-S オプションを使うと、スクリプト内で複数の引き数を指定することができます。 1.pl という名前のスクリプトの最初の行が以下のようになっている場合、 このスクリプトを実行すると、

#!/usr/bin/env -S perl -w -T
...

perl -w -T 1.pl が実行されます。

'-S' パラメーターを指定しない場合、 このスクリプトはおそらく以下のような感じで失敗することでしょう。

/usr/bin/env: 'perl -w -T': No such file or directory

さらなる詳細は info 形式のドキュメントを参照してください。

--default-signal[=SIG] の使い方

このオプションを使うと、シグナルハンドラーに デフォルトの動作を設定できます。 これは、従来のシェルの trap コマンドではできません。 以下の例では、このコマンドを起動したプロセスでこのシグナルが どのように処理されていたとしても、 seq は必ず SIGPIPE で終了します。

sh -c 'env --default-signal=PIPE seq inf | head -n1'

注意

POSIX の exec(2) のページには以下のような記載がある。

「多くのアプリケーションは、 特定のシグナルがデフォルト動作に設定されていたりブロックされていない状態で アプリケーションが開始される、という誤った前提を置いている。。。。 そのため、最も良いのは、明確な理由がない限りは exec の前後でシグナルを ブロックしたり無視したりしないことだ。 特に、(密接に連携しているわけではない) 任意のプログラム間の exec では シグナルをブロックしないのがよい。」

作者

作者 Richard Mlynarik、 David MacKenzie、および Assaf Gordon。

著作権

Copyright © 2020 Free Software Foundation, Inc. ライセンス GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

関連項目

sigaction(2), sigprocmask(2), signal(7)

env の完全なマニュアルは Texinfo マニュアルとして整備されている。もし、 info および env のプログラムが正しくインストールされているならば、コマンド

info env

を使用すると完全なマニュアルを読むことができるはずだ。

2021年5月 GNU coreutils