名前
env - 変更した環境でプログラムを実行する書式
env [ OPTION]... [-] [NAME=VALUE]... [COMMAND [ ARG]...]説明
環境変数 NAME を VALUE に設定し、 COMMAND を実行します。 長いオプションで必須となっている引数は短いオプションでも必須です。- -i, --ignore-environment
- 環境変数がない状態で開始する
- -0, --null
- 出力行の区切りとして改行文字ではなく NUL を使用する
- -u, --unset=NAME
- 環境変数から指定した変数を削除する
- -C, --chdir=DIR
- 作業ディレクトリを DIR に変更する
- -S, --split-string=S
- S を個々の引数に分割する; shebang 行で複数の引数を渡すのに使用される
- --block-signal[=SIG]
- シグナル SIG の COMMAND への配送をブロックする
- --default-signal[=SIG]
- シグナル SIG の処理をデフォルトにリセットする
- --ignore-signal[=SIG]
- シグナル SIG の処理を何もしないに設定する
- --list-signal-handling
- シグナルの処理がデフォルトと異なるものを標準エラーに表示する
- -v, --verbose
- 処理ステップ毎に詳しい情報を表示する
- --help
- 使い方を表示して終了する
- --version
- バージョン情報を表示して終了する
オプション
スクリプトでの -S/--split-string の使い方
-S オプションを使うと、スクリプト内で複数の引き数を指定することができます。 1.pl という名前のスクリプトの最初の行が以下のようになっている場合、 このスクリプトを実行すると、#!/usr/bin/env -S perl -w -T ...
/usr/bin/env: 'perl -w -T': No such file or directory
--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>.関連項目
sigaction(2), sigprocmask(2), signal(7) env の完全なマニュアルは Texinfo マニュアルとして整備されている。もし、 info および env のプログラムが正しくインストールされているならば、コマンド- info env
2021年5月 | GNU coreutils |